我有3个表,我必须检查祖父母表ID是否有记录在孙表中。如果是,则返回yes,否则返回no。这是我的存储过程。我得到了不正确的语法错误。我是存储过程的新手。请帮帮我。存储过程,如果还有SQL服务器2008
CREATE PROCEDURE P_Check
@PKG_ID INT,
@S_ID INT,
@FLAG VCHAR(10) OUT
DECLARE IDS CURSOR LOCAL FOR SELECT S_ID FROM T1 WHERE P_ID = @PKG_ID
OPEN IDS
FETCH NEXT FROM IDS into @S_ID
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT * FROM T2 WHERE S_ID = @S_ID
IF @@ROWCOUNT<>0
@FLAG = 'YES'
RETURN
ELSE
@FLAG = 'NO'
FETCH NEXT FROM IDS into @S_ID
END
CLOSE IDS
DEALLOCATE IDS
谢谢,它的工作原理!我如何返回@标志是或否? – 2013-04-11 03:32:40
不客气。看到我更新的答案。 – 2013-04-11 03:42:50
只需通过匹配S_ID在t1和t2之间进行连接就可以实现同样的效果吗? – Maximus 2013-04-11 04:41:05