我有一个存储过程,它将数据插入到具有自动增量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 发布于 2013-10-10 19:07:59
试一试
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 发布于 2013-10-10 19:07:34
您不应该使用自动递增,而是使用sequence递增,然后可以在任何地方重用该值。
发布于 2013-10-10 19:15:49
您还可以使用:
IDENT_CURRENT ('dbo.Requests')
有关IDENT_CURRENT http://technet.microsoft.com/en-us/library/ms175098.aspx的信息
https://stackoverflow.com/questions/19294037
复制相似问题