2010-03-12 2 views
3

나는 SQL 서버 2005에서 일하고 있어요 그리고 난 아주 간단한 저장 프로 시저를 가지고 :SQL 및 저장 프로 시저에 여러 문은

create PROCEDURE [dbo].[tblTabel_Insert] 
@ID int, 
@Code nvarchar(50) = null 
AS 
    SET NOCOUNT ON; 

    IF EXISTS (SELECT ID, code FROM tblTabel WHERE ID = @ID and code = @Code) 
    UPDATE tblTabel SET ID = @ID,code = @Code WHERE ID = @ID 

ELSE 
BEGIN 

INSERT INTO tblTabel (ID,code) VALUES (@ID ,@Code); 
END 

내 질문은 : 내 저장 프로 시저에서 여러 쿼리를 가지고 추적 할 수없는 가망 무엇입니까? 내 존재하는 경우 섹션의 라인

UPDATE tblTabelB SET ID = @ID,code = @Code WHERE ID = @ID 
UPDATE tblTabelC SET ID = @ID,code = @Code WHERE ID = @ID 

을 추가 할 수 있습니다. 저장 프로 시저를 올바른 방법으로 어떻게 변경합니까?

답변

3

그냥

IF EXISTS (SELECT ID, code FROM tblTabel WHERE ID = @ID and code = @Code) 
BEGIN 
    UPDATE tblTabel SET ID = @ID,code = @Code WHERE ID = @ID 
    UPDATE tblTabelB SET ID = @ID,code = @Code WHERE ID = @ID 
    UPDATE tblTabelC SET ID = @ID,code = @Code WHERE ID = @ID  
END 
ELSE 
BEGIN 

INSERT INTO tblTabel (ID,code) VALUES (@ID ,@Code); 
END 
14
IF EXISTS (SELECT ID, code FROM tblTabel WHERE ID = @ID and code = @Code) 
BEGIN 
    UPDATE tblTabel SET ID = @ID,code = @Code WHERE ID = @ID 
    UPDATE tblTabelB SET ID = @ID,code = @Code WHERE ID = @ID 
    UPDATE tblTabelC SET ID = @ID,code = @Code WHERE ID = @ID 
END 
+0

간단한 것을 시작하고 END 사이에 넣어? – Sjemmie

+6

예, 간단합니다. – Welbog

+0

@Sjemmie : 저장 프로 시저가 필요한 지점입니다. 조건문을 사용하고, 계산을하고, 여러 개의 삽입, 삭제, 업데이트를 원하는대로 할 수 있습니다. :) – Theresa

관련 문제