将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命令操作的各种设置开关功能含义和使用方法,可以为需要的用户提供有益帮助。
- 避免索引:在导入数据时,禁用目标表上的索引以减少写入开销。 - 事务控制:通过`-k`保持事务,以便在导入失败时回滚。 - 错误处理:使用`-e`指定错误日志文件,记录导入过程中遇到的问题。 ### 注意事项 - 数据...
BCP(Bulk Copy Program)是 SQL Server 中负责导入导出数据的一个命令行工具,它是基于 DB-Library 的,并且能以并行的方式高效地导入导出大批量的数据。BCP 可以将数据库的表或视图直接导出,也能通过 SELECT FROM...
bcp命令行工具是SQL Server的一个实用程序,它可以快速地批量导入和导出大量数据。bcp的优点在于其高效性,尤其适合大规模数据的迁移,因为它支持并行操作,可以显著提高数据装载速度。然而,bcp的使用需要对SQL ...
数据导出:在ServerDbConfig.cfg文件里配置好数据库访问所需要的信息,在sql文件下配置好要导出的SqlFiles,执行批处理DBUpdator_Normal.bat,就可以获得导出数据的文本形式,同样的配置导入工具的相关信息,...
SQL Server 三种导入导出数据方式比较 在本文中,我们将详细比较 SQL Server 中的三种导入导出数据方式:使用 Transact-SQL 对数据进行处理;调用命令行工具 bcp 处理数据;使用数据转换服务(DTS)对数据进行处理...
这里使用了 BULK INSERT 语句来批量导入数据。 导入 dBase IV 文件 为了将数据从 dBase IV 文件导入到 SQL Server,使用 SELECT * FROM OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’ ,’dBase IV;HDR=NO;IMEX=2;...
- 当需要从非SQL Server数据库导入数据时,可以利用OPENDATASOURCE和OPENROWSET两个函数。这些函数允许SQL Server通过OLE DB Provider访问其他数据库中的数据。 - `OPENDATASOURCE`:用于连接到另一个数据源,但不...
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`命令行工具导入数据时,如果出现以下错误信息: ``` SQLState = 22001, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]字符串数据,右截位 ``` 这通常意味着在导入过程中遇到了字符串...
SQL Server 7.0 数据库导入数据时出现的符号问题及其解决方法 本文主要介绍了在使用 SQL Server 7.0 导入数据时出现的符号问题及其解决方法。文章首先介绍了项目的背景和目的,然后详细介绍了数据准备、临时数据库...
在使用SQLServer数据库时,数据的备份和恢复是数据库管理中非常重要的环节。尤其在开发和生产环境中,表级数据的恢复显得尤为重要,因为关键表往往存放着核心数据,一旦出现数据损坏,需要迅速采取措施进行恢复。...
BCP 命令也可以使用 XML 模板文件批量导入数据。使用 XML 模板文件批量导入数据的命令格式如下: ``` bcp <表名> in <文件名> -c -f <模板文件名> -U <用户名> -P <密码> ``` 其中,`<模板文件名>` 是 XML 模板文件...
1. **SSMS 导入向导**:与导出类似,通过任务(Tasks) -> 导入数据(Import Data),可以方便地从各种源导入数据到SQL Server。 2. **BULK INSERT**:与导出时使用,也可以用于数据的快速导入,适合大数据量操作。 3....
SQL Server提供了命令行方式来导入导出数据,通常使用`BCP`(Bulk Copy Program)和`OPENROWSET`函数。 - **BCP命令**:用于批量导入和导出数据。例如,`bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S...
本主题主要探讨的是如何在Excel和SQL Server之间进行数据的导入与导出操作,以及相关的C#编程技术。 首先,Excel到SQL Server的导出通常用于将Excel中的数据批量导入到数据库中。这在数据分析、报表生成或者系统...
3. 数据导出:从SQL Server导出数据,可以使用SQL Server Management Studio(SSMS)或其他第三方工具,如bcp命令行工具,生成CSV或XML文件,或者直接通过ODBC/JDBC接口获取数据。 4. 数据加载:使用MongoDB的mongo...
2. 通过SQL Server Management Studio (SSMS) 导入数据:SSMS是管理SQL Server实例的图形界面工具,提供了向导帮助用户导入CSV、文本文件或Excel文件中的数据到数据库表里。 3. 使用bcp命令行工具:bcp(Bulk Copy ...