我有一个单一的列,它是一个自动生成的标识的表插入默认值的多个行插入表
create table SingleIdTable (
id int identity(1,1) not null
)
我可以插入单个行与一个自动生成的ID:
insert into SingleIdTable default values
我想插入许多行,并使用输出语法来获得它们的ID,是这样的:
insert into SingleIdTable
output inserted.Id into @TableOfIds
select (default values) from SomeOtherTable where Attribute is null
Wher e意图是在SomeOtherTable
的每行中插入一行到SingleIdTable
,其中Attribute
使用自动生成的ID为空。上述不起作用,但我怎么能做到这一点。我注意到,如果我的表不仅仅只有一列,我可以做到,但我不能选择那些我真正想做的空行。我不能改变SomeOtherTable
的定义。
+1从来没有想过MERGE – RichardTheKiwi
狡猾...表中有人误用NHibernate映射一个组时的人工制品。我会接受这一点,但我现在意识到我可以将内部查询与插入相关联,以便可以输出inserted.id,SomeOtherTable.id)。这可能吗?真的,我只需要将我生成的每个id的包与'SomeOtherTable'的一个元素相匹配,其中'Attribute'为null。有什么想法吗? – silasdavis
@silasdavis - 是的,只是使用'OUTPUT INSERTED.ID,T.id' –