BCP导出导入大容量数据实践(2)

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
GO

code-3

使用完之后,可以把sp_cmdshell关闭。

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO

EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
GO

code-4

BCP导入数据

修改figure-2中的out为in即可,把数据导入。

022

figure-6

023

figure-7

使用BULK INSERT导入数据

BULK INSERT dbo.T1 FROM 'E:\T1.txt' WITH ( FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n' )

code-5

024

figure-8

关于BULK INSERT更详细的说明,参考:https://msdn.microsoft.com/zh-cn/library/ms188365%28v=sql.105%29.aspx

相比BCP的导入,BULK INSERT提供更灵活的选择。

BCP几个常用的参数说明:

database_name   指定的表或视图所在数据库的名称。如果未指定,则使用用户的默认数据库。  
in | out| queryout | format  

in 从文件复制到数据库表或视图。

out 从数据库表或视图复制到文件。如果指定了现有文件,则该文件将被覆盖。提取数据时,请注意 bcp 实用工具将空字符串表示为 null,而将 null 字符串表示为空字符串。

queryout 从查询中复制,仅当从查询大容量复制数据时才必须指定此选项。

format 根据指定的选项(-n-c-w-N)以及表或视图的分隔符创建格式化文件。大容量复制数据时,bcp 命令可以引用一个格式化文件,从而避免以交互方式重复输入格式信息。format 选项要求指定 -f 选项;创建 XML 格式化文件时还需要指定 -x 选项。

in 从文件复制到数据库表或视图。
out 从数据库表或视图复制到文件。如果指定了现有文件,则该文件将被覆盖。提取数据时,请注意 bcp 实用工具将空字符串表示为 null,而将 null 字符串表示为空字符串。
queryout 从查询中复制,仅当从查询大容量复制数据时才必须指定此选项。

 
-c   使用字符数据类型执行该操作。此选项不提示输入每个字段;它使用 char 作为存储类型,不带前缀;使用 \t(制表符)作为字段分隔符,使用 \r\n(换行符)作为行终止符。  
-w   使用 Unicode 字符执行大容量复制操作。此选项不提示输入每个字段;它使用 nchar 作为存储类型,不带前缀;使用 \t(制表符)作为字段分隔符,使用 \n(换行符)作为行终止符。  
-tfield_term   指定字段终止符。默认值为 \t(制表符)。使用此参数可以替代默认字段终止符。  
-rrow_term   指定行终止符。默认值为 \n(换行符)。使用此参数可替代默认行终止符。  
-Sserver_name[ \instance_name]   指定要连接的 SQL Server 实例。如果未指定服务器,则 bcp 实用工具将连接到本地计算机上的默认 SQL Server 实例。如果从网络或本地命名实例上的远程计算机中运行 bcp 命令,则必须使用此选项。若要连接到服务器上的 SQL Server 默认实例,请仅指定 server_name。若要连接到 SQL Server 的命名实例,请指定 server_name\instance_name。  
-Ulogin_id   指定用于连接到 SQL Server 的登录 ID。  
-Ppassword   指定登录 ID 的密码。如果未使用此选项,bcp 命令将提示输入密码。如果在命令提示符的末尾使用此选项,但不提供密码,则 bcp 将使用默认密码 (NULL)。  
-T   指定 bcp 实用工具通过使用集成安全性的可信连接连接到 SQL Server。不需要网络用户的安全凭据、login_id 和 password。如果未指定 –T,则需要指定 –U–P 才能成功登录。  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/67c4082722eb323c313f954437163bae.html