参考:bcp 公用程序
上一篇文章【bcp 备份所有数据表】介绍利用 bcp 批次会出数据表,这次介绍利用 bcp 汇入数据的动作。
使用 bcp 汇出:
1: DECLARE @cmd varchar( 2000 ) 2: SELECT @cmd = 'bcp SchemaName.DBName.[TableName] out "c:\tablename.txt" -c -T -t "," -r "\n"' 3: EXEC master..xp_cmdshell @cmd
out [filename] 表示要汇出至某个档案
-t "," 表示使用 , 来当分隔符 (预设使用 Tab \t 来当分隔符)
使用 bcp 汇入:
1: DECLARE @cmd varchar( 2000 ) 2: SELECT @cmd = 'bcp SchemaName.DBName.[TableName] in "c:\tablename.txt" -c -T -t "," -r "\n"' 3: EXEC master..xp_cmdshell @cmd
其实就是把 bcp 指令中的 out 改为 in,就表示从档案将数据汇入数据表。
或是使用 BULK INSERT 指令也可以进行大量汇入的动作:
1: BULK INSERT SchemaName.DBName.[TableName] 2: FROM 'c:\tablename.txt' 3: WITH ( 4: BATCHSIZE = 1000, 5: FIELDTERMINATOR = ',', 6: ROWTERMINATOR = '\n', 7: TABLOCK 8: )
另参考: BULK INSERT Performance by Jeffrey
可能发生错误处理 by LOLOTA :
FIX: 当您在 Microsoft SQL Server 2005 执行 BULK INSERT 陈述式错误讯息: " The 大量加载失败。 数据行是针对 <n>, <n> 个数据行数据列将数据文件中的 " 太长
http://support.microsoft.com/kb/942660/zh-tw
PRB: SQL Server 连结到远程数据库失败并 7399 错误
http://support.microsoft.com/kb/241267/zh-tw
在 SQL Server 2005 使用 BULK INSERT 陈述式, 将在大量数据时, FIX: 您收到错误讯息
http://support.microsoft.com/kb/935446/zh-tw
|