用sqlcmd 和 bcp工具将库中的所有表内容导出到文件中 保存成 表名.xml
新建文件 保存成 c:/expsql.bat
sqlcmd -S tcp:192.168.2.3/ZHANGXZ-4B7215C,1433 -U xep -P xep -d attc -h-1 -q " exit(exec dbo.SelectAllTableName attc) " -o "c:/123.bat"
说明: -S 指定服务器/实例名 这里用的是IP 后面的是端口号 -U 用户名 -P 密码 attc 库名
-h-1 去掉列名称 -q 执行sql语句 这里用的是存储过程
--创建存储过程 执行拼接串 最后存在c:/expfile下
-- =============================================
-- Author: <Author,,xep>
-- Create date: <2009-12-31>
-- Description: <combin string select all table in database>
-- bcp database.schema.table_name out directory/file_name
-- =============================================
ALTER PROCEDURE [dbo].[SelectAllTableName]
-- Add the parameters for the stored procedure here
(@basename varchar(30))
AS
declare @sql varchar(2000)
declare @t_name varchar(60)
declare @dott char(1)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--'select bcp '+@basename+ + ' out c:/t_name/'+@t_name +' from '+@basename+'..sysobjects where xtype=''u'' and status>=0'
-- Insert statements for procedure here
set @dott='.'
set @sql ='select '' bcp ''+'+''''+@basename+''+@dott+'''+u.[name]+'''+@dott+'''+o.[name]+'' format nul -S tcp:192.168.2.3/ZHANGXZ-4B7215C,1433 -U xep -P xep -c -x -f c:/expfile/''+o.[name]+''.xml'' from '+@basename+'..sysobjects o
inner join '+@basename+'..sysusers u on o.uid = u.uid where o.xtype= ''u'' order by o.[name]'
exec (@sql)
END
--exec [dbo].[SelectAllTableName] 'attc'
--
--C:/Documents and Settings/Administrator> bcp attc.db_owner.AssistantResource fo
--rmat nul -S tcp:192.168.2.3/ZHANGXZ-4B7215C,1433 -U xep -P xep -c -x -f c:/exp
--file/AssistantResource.xml
运行 cmd 执行 c:/expsql.bat
会自动生成 c:/123.bat
再执行 C:/123.bat 去 c:/expfile 文件夹下就会看到表名.xml文件
本文介绍如何使用SQLCMD和BCP工具从数据库中导出所有表的内容到XML文件,包括创建批处理文件、执行存储过程及具体命令行操作。
1730





