通过标量函数返回标识

时间:2013-01-15 11:11:57

标签: sql sql-server-2008

我有一个列表,ID列为Identity。我需要一个可以在函数调用中插入和返回新插入的Identity的函数。我已经创建了一个函数但是我们不能在SCALAR函数中使用INSERT。还有什么可以解决方案

1 个答案:

答案 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