我试过寻找这一个答案无济于事。这种方式背后没有好的逻辑。这个人不知道他在做什么,但这是我必须要处理的事情(长话短说)。我使用SQL Server 2008R2我需要从一个表中记录数据并将数据传输到4个独立的表格,所有这些表格都有一对一的关系(我知道 - 并不聪明)。我需要从数据插入的第一个表中的Identity字段获取值,然后使用相同的ID填充其他3个表并相应地分散数据。例如:如何从一个表中获取ID并将其与SQL Server中另一个表中的记录相关联
OldTable:字段1,字段2,字段3,字段4
NewTable1:标识字段,字段1 NewTable2:ID,字段2 NewTable3:ID,字段3 NewTable4:ID,字段4
I” d喜欢在存储过程中处理这个问题。我想做一个循环,但我读过SQL中的循环是不合适的。
Loop moving through each record in OldTable... (??)
INSERT INTO NewTable1
(Field1)
Select Field1 from OldTable
INSERT INTO NewTable2
(ID, Field2)
Select SCOPE_IDENTITY?, Field2 From OldTable Where OldTable.ID = ??
etc for other 2 tables
Loop to next record in OldTable
我不知道如何使用SCOPE_IDENTITY,但我有一种感觉,这将涉及到我如何做到这一点。
此外,我很可能需要为在NewTable1中创建新记录时设置触发器。我知道,这是疯狂,但我无能为力,只能解决它。
所以,我需要知道 1:最初填充表的最佳方式 2:如何使触发新记录
1的解决方案可能涉及2.
请帮帮忙!
是任何一列或多列在OldTable组合主键或独特之处? –
是的,我想可以用那个PK把它们联系起来。不过,该字段并未存储在新表中。什么是我可以使用它的好方法? – user2751304