我创建了表
create table AA(
id int ,
name varchar(20),
sname varchar(20)
)
现在我插入一个新值并获取插入的行id:
declare @InsID table (InId int)
insert into AA (name, sname)select 1, 'John', 'Rock'
output inserted.id into @output
Select * from @InsID
但它显示错误:Msg 102,Level 15,State 1,Line 3 'inserted'附近的语法不正确。有谁知道这似乎是什么问题?
答案 0 :(得分:3)
declare @InsID table (InId int)
insert into AA (name, sname)
output inserted.id into @InsID
select 'John', 'Rock'
Select * from @InsID
答案 1 :(得分:1)
假设表中的ID列被定义为标识列,则:
SELECT SCOPE_IDENTITY()
如果您确实想使用OUTPUT
子句,则语法错误。输出必须紧跟在表之后,在值之前:
declare @InsID table (InId int)
insert into AA (name, sname)
output inserted.id into @InsID
select 'John', 'Rock'
Select * from @InsID
有关每个
的示例,请参阅here