>我在SQL Server 2012中创建了一个存储过程,我使用scope_identity
来获取标识列的值,但就我而言,我不知道这是否正确,请帮助
CREATE PROCEDURE Add_Translation
@english nvarchar(70),
@kurdish nvarchar(70),
@english_category int,
@kurdish_category int,
@result int out
AS
BEGIN
SET NOCOUNT ON;
if @english is not null and @kurdish is not null and @english_category is not null and @kurdish_category is not null
begin
insert into english_table values(@english, @english_category);
declare @identityEnglish int;
set @identityEnglish = SCOPE_IDENTITY();
insert into kurdish_table values(@kurdish, @kurdish_category);
declare @identityKurdish int;
set @identityKurdish = SCOPE_IDENTITY();
insert into transactions values(@identityEnglish, @identityKurdish);
set @result = 1;
end
else
begin
set @result = 0;
end
END
我的问题是,变量@identityEnglish
会得到english_table
的最后一个标识值,变量@identityKurdish
会得到最后一个恒等值kurdish_table
谢谢。。
如果插入成功,则scope_identity()
正常工作。
您可以在 DML 操作上使用"输出"子句。
点击这里