Sql server 如何将数据导入到具有关系id列的SQL Server表中?

Sql server 如何将数据导入到具有关系id列的SQL Server表中?,sql-server,ssis,Sql Server,Ssis,我的暂存表中有业务记录。我必须将记录从staging表导入business表。业务表有一个类别Id列 在暂存表中,我有餐厅、杂货店、酒店、购物中心等业务类别 是否有方法使用正确的类别Id在业务表中插入记录?您可以将暂存表与业务表连接起来 INSERT INTO(s.Column1, s.Column2, b.Category_ID) (SELECT s.Column1, s.Column2, b.Category_ID FROM StagingTable s

我的暂存表中有业务记录。我必须将记录从staging表导入business表。业务表有一个
类别Id

在暂存表中,我有餐厅、杂货店、酒店、购物中心等业务类别


是否有方法使用正确的
类别Id在业务表中插入记录?

您可以将暂存表与业务表连接起来

INSERT INTO(s.Column1, s.Column2, b.Category_ID)
    (SELECT s.Column1, s.Column2, b.Category_ID
       FROM StagingTable s
       JOIN BusinessTable b
         ON s.Category = b.Category_DESC)

您可以将临时表与业务表连接起来

INSERT INTO(s.Column1, s.Column2, b.Category_ID)
    (SELECT s.Column1, s.Column2, b.Category_ID
       FROM StagingTable s
       JOIN BusinessTable b
         ON s.Category = b.Category_DESC)

您可以在插入前删除外键,然后在插入后重新应用它

表中可能还有一个标识列,因此如果希望标识值完全相同,则需要运行以下操作

SET IDENTITY_INSERT dbo.business ON 
执行插入操作,然后再次关闭IDENTITY_insert:

SET IDENTITY_INSERT dbo.business OFF

您可以在插入前删除外键,然后在插入后重新应用它

表中可能还有一个标识列,因此如果希望标识值完全相同,则需要运行以下操作

SET IDENTITY_INSERT dbo.business ON 
执行插入操作,然后再次关闭IDENTITY_insert:

SET IDENTITY_INSERT dbo.business OFF