2010-03-12 6 views
3

je travaille sur le serveur SQL 2005 et j'ai une procédure stockée très simple:SQL et plusieurs instructions dans la procédure stockée

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 

Ma question est la suivante: est-il posible d'avoir plusieurs requêtes dans ma procédure stockée? Je veux ajouter les lignes

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

dans mon cas existe section. Comment puis-je modifier ma procédure stockée correctement?

Répondre

3

Il suffit de les mettre entre BEGIN et END

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

son aussi simple que cela? – Sjemmie

+6

Oui, c'est aussi simple que ça. – Welbog

+0

@Sjemmie: C'est le point d'avoir une procédure stockée. Vous pouvez utiliser des conditions, faire des calculs, avoir plusieurs insertions, supprimer, mettre à jour, ce que vous voulez. :) – Theresa

Questions connexes