インサートストアドプロシージャを実装しようとしています。基本的には、レコードが存在するかどうかをチェックして、挿入を実行するように動作するのはstored procedure
です。変数@status
が指標として使用されます。しかし、このquery
の問題は、query
を実行すると、データが存在するかどうかにかかわらず結果が@status = 1
であることがわかります。しかし、INSERT
の機能は問題ありません。ちょうど@status
です。以下は、私の実装です:SQLストアドプロシージャIF ELSE論理エラー
CREATE PROCEDURE save_proc
(
@userid varchar(10)
@name varchar(30)
)
AS
DECLARE @status int
if exists (SELECT * FROM table1 where userID = @userid AND userName = @name)
SET @status = 0
else
INSERT INTO table1 (userID, userName) VALUES (@userid, @name)
SET @status = 1
SELECT @status