我有一个存储过程,它在具有自动增量ID(名称为'requestid')的表上插入数据。当我使用该过程将数据插入其中时,我想获取自动增量字段的值并将其用于对同一存储过程的另一个查询。我怎么做?提前感谢您的时间。
CREATE PROCEDURE [dbo].[sp_Create_new_request]
@employeeid INT ,
@requestdate DATETIME ,
@deliverdate DATETIME ,
@totalcost MONEY
AS
BEGIN
INSERT INTO dbo.Requests
(
EmployeeID ,
RequestDate ,
DeliverDate ,
TotalCost
)
VALUES
(
@employeeid ,
@requestdate ,
@deliverdate ,
@totalcost
)
END
答案 0 :(得分:1)
尝试
CREATE PROCEDURE [dbo].[sp_Create_new_request]
@employeeid INT ,
@requestdate DATETIME ,
@deliverdate DATETIME ,
@totalcost MONEY,
requestid INT = NULL OUT
AS
BEGIN
INSERT INTO dbo.Requests
(
EmployeeID ,
RequestDate ,
DeliverDate ,
TotalCost
)
VALUES
(
@employeeid ,
@requestdate ,
@deliverdate ,
@totalcost
)
SET @requestid = SCOPE_IDENTITY();
END
答案 1 :(得分:0)
您不应该使用自动增量而是使用序列来递增,然后您可以在任何地方重复使用该值。
答案 2 :(得分:-1)
您也可以使用:
IDENT_CURRENT('dbo.Requests')
有关IDENT_CURRENT的信息 http://technet.microsoft.com/en-us/library/ms175098.aspx