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