用sqlcmd 和 bcp工具将库中的所有表内容导出到文件中

用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文件

你可能感兴趣的:(sql,c,tcp,insert,Parameters,工具)