BOS*_*OSS 8 sql sql-server sql-server-2008
我想简单地执行一个SQL查询,该查询将返回添加到表中的行的当前id,例如:
insert into V_Post output inserted._ID values('Please return the id of THIS row :)')
Run Code Online (Sandbox Code Playgroud)
那将返回一个像155的数字
所以我的问题的目的是将该数字存储在某种局部变量中,如XVALUE,然后在任何其他SQL查询中使用此XVALUE,如:
insert into V_Posts values(1, XVALUE, null, GETDATE(), null, null, 1)
Run Code Online (Sandbox Code Playgroud)
所以我想要的是:
int XVALUE = insert into V_Post output inserted._ID values('Please return the id of THIS row :)')
insert into V_Posts values(1, XVALUE, null, GETDATE(), null, null, 1)
Run Code Online (Sandbox Code Playgroud)
要么
insert into V_Posts values(1, insert into V_Post output inserted._ID values('Please return the id of THIS row :)'), null, GETDATE(), null, null, 1)
Run Code Online (Sandbox Code Playgroud)
但它都不起作用:(
我希望我能很好地解释我的问题,我真的非常感谢你的帮助.
编辑
请注意我有两个表:V_posts和V_post
M.A*_*Ali 11
IDENTITY COLUMN
DECLARE @NewValue INT;
insert into V_Post
values('Please return the id of THIS row :)')
SET @NewValue = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)
如果不是身份列
DECLARE @tbl TABLE (Col1 DataType)
DECLARE @NewValue Datatype;
insert into V_Post
output inserted._ID INTO @tbl
values('Please return the id of THIS row :)')
SELECT @NewValue = Col1 FROM @tbl
Run Code Online (Sandbox Code Playgroud)
编辑
由Martin Smith建议使用SCOPE_IDENTITY()可以返回由另一个并发会话生成的标识值,因此最好使用OUTPUTunction或我的第二个建议的SCOPE_IDENTITY()Method.
| 归档时间: |
|
| 查看次数: |
12442 次 |
| 最近记录: |