0

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

4

1 回答 1

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
于 2013-01-15T11:17:27.207 回答