MrG*_*O-L 2 sql t-sql sql-server stored-procedures
我正在使用一个存储过程,该存储过程在表中插入值:ID 和当前日期。我知道如何获取上次使用的 ID,SCOPE_IDENTITY但我还需要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
Run Code Online (Sandbox Code Playgroud)
您可以为此使用OUTPUT子句:
INSERT INTO OrderHeaders (OrderStateId,DateTime)
OUTPUT inserted.OrderStateId,inserted.DateTime
VALUES (1,GETDATE());
Run Code Online (Sandbox Code Playgroud)
该OUTPUT子句用于返回所有数据修改语句中修改的值,即INSERT、DELETE、UPDATE、MERGE。与触发器一样,新值通过伪表访问inserted,而删除/覆盖的值通过deleted表访问