如何 select 在存储过程中插入值?
How can I select the inserted values in a stored procedure?
我正在使用在 table 中插入值的存储过程:ID 和当前日期。我知道如何使用 SCOPE_IDENTITY
获取最后使用的 ID,但我还需要 SELECT
刚刚插入的日期。有什么想法吗?
ALTER PROCEDURE [dbo].[sp_InsertOrderHeader]
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO OrderHeaders (OrderStateId,DateTime) VALUES (1,GETDATE());
SELECT CONVERT(int, SCOPE_IDENTITY()) Id
END
您可以为此使用 OUTPUT 子句:
INSERT INTO OrderHeaders (OrderStateId,DateTime)
OUTPUT inserted.OrderStateId,inserted.DateTime
VALUES (1,GETDATE());
OUTPUT
子句用于return所有数据修改语句中的修改值,即INSERT、DELETE、UPDATE、MERGE。与触发器一样,新值通过 inserted
伪 table 访问,而 deleted/overwritten 值通过 deleted
table
我正在使用在 table 中插入值的存储过程:ID 和当前日期。我知道如何使用 SCOPE_IDENTITY
获取最后使用的 ID,但我还需要 SELECT
刚刚插入的日期。有什么想法吗?
ALTER PROCEDURE [dbo].[sp_InsertOrderHeader]
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO OrderHeaders (OrderStateId,DateTime) VALUES (1,GETDATE());
SELECT CONVERT(int, SCOPE_IDENTITY()) Id
END
您可以为此使用 OUTPUT 子句:
INSERT INTO OrderHeaders (OrderStateId,DateTime)
OUTPUT inserted.OrderStateId,inserted.DateTime
VALUES (1,GETDATE());
OUTPUT
子句用于return所有数据修改语句中的修改值,即INSERT、DELETE、UPDATE、MERGE。与触发器一样,新值通过 inserted
伪 table 访问,而 deleted/overwritten 值通过 deleted
table