当前位置: 代码迷 >> Sql Server >> 求救,怎么在存储过程中返回自动标识列的值
  详细解决方案

求救,怎么在存储过程中返回自动标识列的值

热度:42   发布时间:2016-04-27 15:40:50.0
求救,如何在存储过程中返回自动标识列的值?
假如有一个表New(A   int,   B   nchar(10)),其中A字段是自动标识的,我写一个Insert的存储过程:
CREATE   PROCEDURE   InsertOne   (   @B   nchar(10))
AS
BEGIN
INSERT   INTO   New(B)
VALUES(@B);
END
GO
因为A列是自动标识的,我在插入新列的时候不用考虑它的值,但是现在我想让这个存储过程返回插入行的A列,应该怎么做呢?

------解决方案--------------------
Create Table New(A int Identity(1, 1), B nchar(10))
GO
CREATE PROCEDURE InsertOne ( @B nchar(10), @A Int Output)
AS
BEGIN
INSERT INTO New(B)
VALUES(@B);
Select @A = @@IDENTITY
END
GO
Declare @A Int
EXEC InsertOne 'New ', @A Output
Select @A As A
GO
Drop Table New
Drop PROCEDURE InsertOne
--Result
/*
A
1
*/
------解决方案--------------------
两个@ --全局变量

不能创建全局变量,系统中的全局变量一共33个。
  相关解决方案