DECLARE @tag VARCHAR(MAX)
DECLARE @TagID as INT;
DECLARE @ID as INT;
DECLARE tag_cursor CURSOR
FOR
SELECT tagname FROM #temptag
FOR READ ONLY
OPEN tag_cursor
FETCH NEXT FROM tag_cursor INTO @tag
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS (SELECT TOP 1 * FROM Tag WHERE TagName=@tag)
BEGIN
print 1;
END
print 2;
/* INSERT INTO Tag
SELECT @tag FROM #temptag
SELECT @TagID = SCOPE_IDENTITY();
print @TagID*/
FETCH NEXT FROM tag_cursor INTO @tag
END
CLOSE tag_cursor
DEALLOCATE tag_cursor
私のストアド プロシージャでは、テーブル内の値を検索しています。値が既に存在する場合は、値を挿入しないでください。
だから私は書いた
IF EXISTS (SELECT TOP 1 * FROM Tag WHERE TagName=@tag)
BEGIN
print 1;
END
print 2;
/* INSERT INTO Tag
SELECT @tag FROM #temptag
SELECT @TagID = SCOPE_IDENTITY();
print @TagID*/
FETCH NEXT FROM tag_cursor INTO @tag
END
問題: 実行すると、print1 と print 2 の両方の値が出力されます
誰かがエラーを修正するのを手伝ってくれますか