我有一个包含单列的表,这是一个自动生成的标识
create table SingleIdTable (
id int identity(1,1) not null
)
Run Code Online (Sandbox Code Playgroud)
我可以使用自动生成的id插入一行:
insert into SingleIdTable default values
Run Code Online (Sandbox Code Playgroud)
我想插入许多行并使用输出语法来获取它们的ID,例如:
insert into SingleIdTable
output inserted.Id into @TableOfIds
select (default values) from SomeOtherTable where Attribute is null
Run Code Online (Sandbox Code Playgroud)
凡意图是将行插入SingleIdTable
在每行SomeOtherTable
,其中Attribute
为null使用自动生成的ID.以上不起作用,但我怎么能这样做.我注意到,如果我的表不仅仅有一个列我可以做到,但我不能选择空行,这是我真正想要做的.
我无法改变定义SomeOtherTable
.
Mar*_*ith 23
如果您可以使用SQL Server 2008+ MERGE
.示例语法如下.
MERGE INTO SingleIdTable
USING (SELECT *
FROM SomeOtherTable
WHERE Attribute IS NULL) T
ON 1 = 0
WHEN NOT MATCHED THEN
INSERT
DEFAULT VALUES
OUTPUT INSERTED.id;
Run Code Online (Sandbox Code Playgroud)
我不确定这个单列表有什么实际用途吗?
归档时间: |
|
查看次数: |
3028 次 |
最近记录: |