我创建了一个ASP.NET应用程序,我想从CSV文件中将数据插入到我的SQL Server中。我用这个SQL命令做到了:
BULK
INSERT Shops
FROM 'C:\..\file.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
);
它非常有效但我有一个AUTO INCREMENT
选项的id列。我想重新排序插入列到SQL服务器增量自动Id列。
如何使用BULK
方法执行此操作?
(当然,我不想手动编辑.csv文件:P)
答案 0 :(得分:3)
正如我在评论中所说的那样:您不能批量插入数据泵,您无法以任何方式转换数据。您可以做的是批量插入到临时表,并使用insert语句来执行您需要执行的操作。
你可以这样做:
-- Create staging table
SELECT TOP 0 *
INTO Shops_temp
FROM Shops;
-- Bulk insert into staging
BULK INSERT Shops_temp
FROM 'C:\..\file.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
);
-- Insert into actual table, use SELECT for transformation, column order etc.
INSERT INTO Shops(name, etc..)
SELECT name
, etc..
FROM Shops_temp;
-- Cleanup
DROP TABLE Shops_temp;