0

ID 列を ID として持つ単一の列テーブルがあります。関数呼び出しで新しく挿入された ID を挿入して返すことができる関数が必要です。関数を作成しましたが、SCALAR 関数で INSERT を使用できません。他に何が解決策になり得るか

4

1 に答える 1

2

SQL Server のデフォルト関数を使用Scope_Identity()して、新しく挿入された ID フィールドを取得できます。詳細については、リンク 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 に答える