我正在尝试编写一个SQL脚本,在表中插入2行:
INSERT INTO [table1]
([Id]
,[Name]
,[SequenceNo]
,[EntityId])
VALUES
(<newid(), uniqueidentifier,>
,<'SpecificName1', nvarchar(255),>
,<1, int,>
,</*Here's where I need help*/>)
INSERT INTO [table1]
([Id]
,[Name]
,[SequenceNo]
,[EntityId])
VALUES
(<newid(), uniqueidentifier,>
,<'SpecificName2', nvarchar(255),>
,<2, int,>
,</*Here's where I need help*/>)
“EntityId”是我在此处称为“实体”的表的外键。
有没有办法可以为“实体”中的每一行插入其中的2行(相应的实体的Id列值作为table1的EntityId列的值而不使用游标?
答案 0 :(得分:1)
INSERT SELECT应该是您所需要的。我不确定你是否需要一个WHERE子句来插入任何相关的实体,但是......
编辑:我的第一个答案没有为实体中的每个项目增加序列号。已使用ROW_NUMBER方法执行此操作。
INSERT INTO [table1]
(
[Id],
[Name],
[SequenceNo],
[EntityId]
)
SELECT
NEWID(),
'SpecificName1',
ROW_NUMBER() OVER (ORDER BY EntityId),
EntityId
FROM
Entities