将A地的符合条件的文件恢复到B地机器上。对方管理员什么也不懂,所以想做的尽量傻瓜,免得要跟他说明半天如何操作。
--用查询语句导出文本文件
--EXEC master..xp_cmdshell 'bcp "select * from [TestDB11-27]..restoreweihai" queryout c:\test.txt -F 2 -c -S "192.168.102.122" -U"sa" -P"pass"'
--导出查询数据到XML文件
--EXEC master..xp_cmdshell 'bcp "select * from [TestDB11-27]..tline_tw for xml raw,binary
base64" queryout c:\\aa.xml -c -S"192.168.102.122" -U"sa" -P"pass"'
--从文本文件导入数据到数据库
--EXEC master..xp_cmdshell 'bcp Customer..order in c:\test.txt -c -S "192.168.102.122" -U sa
-P pass'
这里有几点需要注意
1 写查询语句导出时,用queryout比较好,我用out 时怎么也不成功,改queryout才行。
2 库名带空格,- 等字符时用“[ ]”括起来,这个在线帮助中有。
3 导入时使用的文件必须与导出时生成的文件一致,否则会出现复制失败,接受的导入默认是制表符分隔的文件,而DTS生成的文件用了很多引号或者括号之类的来分隔字段,所以DTS导出的文本与BCP导出的文本不能通用,否则会出现“在BCP数据文件中遇到的意外的EOF”错误。
如下:
NULL
开始复制...
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]在 BCP 数据文件中遇到的意外的 EOF
NULL
已复制了 0 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共 1
NULL
将导入文本改成使用导出语句生成的文本后,终于成功。
4. 在别的机器上测试发现一个问题,如果B地数据库结构与A地表结构不一致,会出现“字符造型错误”的问题。
——————————————
导入B地机器前先要将B地以前的相关数据清空,否则会出现关键字冲突,这时有外键约束关系的也要注意处理,否则会出错。
清理B地表中的数据。
osql -U"sa" -P"pass" -S"127.0.0.1" -Q "use Customer delete from order where FieldName='****' "
然后再执行导入语句。
bcp Customer..order in c:\test.txt -c -S "192.168.102.122" -U sa -P pass
将这两个语句写成bat文件。再把A地导出的test.txt文件与之放在一个文件夹,点击bat文件就可以执行了。
注意,有的机器上会找不到osql和bcp工具,可能是有的机器环境变量未设置。还得把这两个工具也加上,bcp要使用还得加上Resource Dll,这个我就懒得去找了,应该在sqlserver目录的80\tools\binn目录下
分享到:
相关推荐
bcp是微软SQLServer数据库系统的命令行工具,用于进行大数据量的导入导出,该工具简单实用、效率极高,本文总结了bcp命令操作的各种设置开关功能含义和使用方法,可以为需要的用户提供有益帮助。
sql server bcp 导入 到处 详细资料 参数
sql server 中 BCP使用方法详解,快速从SQL SERVER中导入导出数据的命令
SQLServer 数据 导入导出 BCP详解。。。。。。。。。
数据导出:在ServerDbConfig.cfg文件里配置好数据库访问所需要的信息,在sql文件下配置好要导出的SqlFiles,执行批处理DBUpdator_Normal.bat,就可以获得导出数据的文本形式,同样的配置导入工具的相关信息,...
sql server 2008 导入导出数据大全 /******* 导出到excelEXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDATA/GNETDATA" -U"sa" -P""' /*********** 导入ExcelSELECT * ...
bcp导入导出SQL Server和Sybase数据库数据
BCP批量导入excel数据到sqlserver相关资料整理
在使用bcp导入文本文件到数据库是错如下: SQLState = 22001, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]字符串数据,右截位
bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后...
在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。
上次传得只有导出,这次导入也做出来了。 加了中括号得数据库导入in,导出out不行,但是导出queryout可以(加中括号是数据库名字有破折号-,或空格的数据库)例如[spt-ceshi].dbo.tbl_A
BCP - Microsoft SQL Server 的大容量复制程序。 版本: 15.0.2000.5
sqlserver bcp导出到excel 测试可用
SQL2005的bcp命令-批量快速导入导出数据,公司内部人员写的资料,希望对大家有帮助
你可能常常会需要运行一个ad hoc查询从远程OLE DB数据源提取数据,或者批量向SQL Server表导入数据。在这种情况下,你可以在T-SQL(Transact-SQL,微软对SQL的扩展)中用OPENROWSET函数给数据源传入一个连接串和查询...
sql server数据导入导出 指定要连接的SQL Server服务器的实例,如果未指定此选项,bcp连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。
批量导入导出工具,无需安装数据库即可使用,,,,,
利用BCP导入导出数据库数据为TXT等文本数据