谁能告诉我如何使用主键、外键对两个表进行重复多次插入 这就是我所做的。 这是需要做的事情的一小部分。 StatusTable 有大约 200 行。我试图将此状态表的详细信息拆分为 2-表 1、表 2。
将每条记录插入 Table1 后,我得到了 Identity 列,并且需要将其与一些其他内容一起插入到 Table2 中。因此,如果 StatusTable 中有 200 行,则 Table1、Table2 中也有 200 行。
但这不是它的工作方式。它将所有 200 行插入到 Table1,然后获取 Identity,然后将一行插入到 Table2。我知道它为什么这样做。但不知道如何解决它..
INSERT INTO [dbo].[Table1]
([UserID],
,[FirstName].......)
SELECT 'User1' AS [UserID]
,'FirstName'
FROM [dbo].[StatusTable]
SELECT @id = SCOPE_IDENTITY()
INSERT INTO [dbo].[Table2]
([AccountID],[Status]
values (@id, 'S')
请提出建议
最佳答案
使用 OUTPUT 子句
DECLARE @IDS TABLE (id INT)
INSERT INTO [dbo].[Table1]
([UserID]
,[FirstName])
OUTPUT inserted.id INTO @IDS
SELECT 'User1' AS [UserID]
,'FirstName'
FROM [dbo].[StatusTable]
INSERT INTO [dbo].[Table2]
([AccountID],[Status])
SELECT Id, 'S' FROM @IDS
关于sql-server - 使用主键、外键重复插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325998/