我有以下表格(简化问题):
数据:
Id
Serialnumber
Value
AddressId (ForeignKey)
地址:
Id
Street
ZipCode
City
...
现在我有一个包含数据的csv文件,遗憾的是两个表:
Serialnumber,Value,Street,ZipCode,City, ...
12345,1140,Fakestreet 3,12345,New York
5678,830,Fakestreet 87,12345,New York
有没有办法将这样的csv文件导入Microsoft SQL Server(2008)?服务器本身必须先插入地址,然后使用Addresses表的主键作为Data表中的外键。
答案 0 :(得分:1)
您需要将CSV文件导入到如下所示的临时表中,然后相应地处理它。
IF (OBJECT_ID('StagingData') IS NULL)
CREATE TABLE StagingData
(
SerialNumber int,
Value int,
Street varchar(256),
ZipCode int,
City varchar(256)
)
TRUNCATE table StagingData
BULK
INSERT StagingData
FROM 'c:\csvtest.txt'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
答案 1 :(得分:0)
INSTEAD
触发器。请记住,触发器将在同一批次中接收多个插入,因此需要处理多个插入。因此,将Address主键捕获到@table变量。