2010-03-12 3 views
3

Я работаю на SQL Server 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

его просто? – Sjemmie

+6

Да, это так просто. – Welbog

+0

@Sjemmie: В этом суть хранимой процедуры. Вы можете использовать условные обозначения, делать вычисления, иметь несколько вложений, удалений, обновлений, что хотите. :) – Theresa

Смежные вопросы