我有一个id
作为主键,我在插入过程中设置了id=scope identity()
。
但我无法在更新程序中使用该ID。
我想编写一个过程,用于在where条件中更新id,即
UPDATE TABLE [table name]
SET col = @col, col2 = @col2
WHERE id = @id
但我的ID是自动生成的,即id int identity(1,1)
我应该如何编写更新程序?
答案 0 :(得分:0)
您需要将@id
作为存储过程的in参数。
您的存储过程应该类似于:
CREATE PROCEDURE <Procedure name>
(
@id INT,
@col1 <datatype>,
@col1 <datatype>
)
AS
UPDATE TABLE [table name]
SET col = @col, col2 = @col2
WHERE id = @id
答案 1 :(得分:0)
我能理解的是,您希望使用@id = scope_identity()更新最近插入行的表。请参阅下面的代码来实现这一目标:
create proc abc
@col1 int,
@col2 int,
@id int
as
begin
set @id = ident_insert('TableA')
UPDATE TABLE [table name]
SET col = @col, col2 = @col2
WHERE id = @id
end
如果这有帮助,请告诉我。