我有一个列表,ID列为Identity。我需要一个可以在函数调用中插入和返回新插入的Identity的函数。我已经创建了一个函数但是我们不能在SCALAR函数中使用INSERT。还有什么可以解决方案
答案 0 :(得分:2)
您可以使用sql server Scope_Identity()
的默认功能来获取新插入的标识字段。请参阅链接
SCOPE_IDENTITY (Transact-SQL)
了解更多详情。
DECLARE @Identity INT
INSERT INTO TableName (Column1, Column2, )VALUES(@value1, @value2, ...)
SET @Identity=Scope_Identity()
您可以使其与存储过程相同。实施例
CREATE PROCEDURE USP_ProcedureName
(
@Input1 INT,
@Identity INT OUTPUT
)
AS
BEGIN
INSERT INTO TableName (Col1) VALUES (@Input1)
SET @Identity=Scope_Identity()
END
GO
可以使用EXEC
命令执行存储过程来检索输出参数。像
DECLARE @OutVar INT
EXEC USP_ProcedureName 1, @OutVar OUTPUT
SELECT @OutVar