Sql Server映射ID在同一个表中

时间:2013-08-01 17:30:56

标签: sql sql-server mapping

我想制作一张地图,其中包含原始房间ID以及每个创建的房间的新房间ID。

2 个答案:

答案 0 :(得分:1)

尝试在insert语句中使用“OUTPUT”子句。然后,您可以将所有插入的值和随附的键映射到不同的“映射”表。编辑:我应该补充一下,这都是在SINGLE事务中完成的,这使得性能很棒!

Insert Into TableA
(
  Field1,
  Field2,
  Field3
)
  Output Inserted.Field1, Field2, Field3, MappingID
  Into MappingTable
Select Field1, Field2, Field3
From Rooms

以下是OUTPUT子句的msdn网站链接:http://msdn.microsoft.com/en-us/library/ms177564.aspx

答案 1 :(得分:0)

虽然我建议您更改表格设计并为新网站和原始网站ID分别设置一个列,但在目前的设计中,我认为您正在寻找以下内容:

  SELECT 
    Name, @origSiteID, ControlsSiteNum, ControlsRoomNum, IsActive
  FROM Rooms
  WHERE SiteID = @newSiteID