本主题中的示例使用 INSERT ... SELECT * FROM OPENROWSET(BULK...)且保持默认值不变来大容量导入数据。
示例表
大容量导入示例需要在 dbo 架构下的 AdventureWorks2008R2 示例数据库中创建一个名为 myTestKeepNulls 的表。若要创建此表,请在 SQL Server Management Studio 查询编辑器中,执行以下语句:
复制
USE AdventureWorks2008R2; GO SELECT * INTO HumanResources.myDepartment FROM HumanResources.Department WHERE 1=0; GO SELECT * FROM HumanResources.myDepartment;
USE AdventureWorks2008R2; GO DELETE HumanResources.myDepartment; GO BULK INSERT HumanResources.myDepartment FROM 'C:\myDepartment-n.Dat' WITH ( KEEPIDENTITY, FORMATFILE='C:\myDepartment-f-n-x.Xml' ); GO SELECT * FROM HumanResources.myDepartment;
USE AdventureWorks2008R2; GO DELETE HumanResources.myDepartment; GO
INSERT INTO HumanResources.myDepartment with (KEEPIDENTITY) (DepartmentID, Name, GroupName, ModifiedDate) SELECT * FROM OPENROWSET(BULK 'C:\myDepartment-n.Dat', FORMATFILE='C:\myDepartment-f-n-x.Xml') as t1; GO