2009-07-26 3 views
7

У меня есть хранимая процедура вставки, которая принимает много параметров - 2 из них - @FirstName, @LastName. У меня также есть хранимая процедура обновления, которая принимает много параметров - 2 из них - @FirstName, @LastName.Как вызвать хранимую процедуру из другой хранимой процедуры?

Что я хочу сделать, изнутри вставки SP, когда это будет сделано, вызовите SP обновления и отправьте ему @FirstName, @LastName.

Я не знаю правильного синтаксиса для этого; Я пробовал:

exec LandData_Update @FirstName, @LastName 

Но я думаю, что это неправильно.

Может кто-нибудь сказать мне, как написать это призвание?

И если я позвоню update sp с разными именами параметров? Например, @MyFirstName, @MyLastName? Я бы написал это так: EXECUTE LandData_Update @[email protected], @[email protected]?

ответ

12

Что заставляет вас думать, что это неправильно?

CREATE PROCEDURE MyInsertSP 
    @FirstName varchar(255), 
    @LastName varchar(255) 
AS 
BEGIN 
    INSERT INTO Table VALUES('Some Value') 

    EXECUTE LandData_Update @FirstName, @LastName 
END 

У вас есть ошибка?

EDIT: Это не имеет значения, какое имя из переменных, но делать то, что вы хотите, вы можете объявить две новые переменные.

DECLARE @MyFirstName varchar(255) 
DECLARE @MyLastName varchar(255) 

SET @MyFirstName = @FirstName 
SET @MyLastName = @LastName 

А затем используйте новые переменные. Но опять же, процедура Store не волнует, как вызывается переменные.

+0

и если я позвоню update sp с разными именами параметров? таких как @MyFirstName, @MyLastName? напишет это так: EXECUTE LandData_Update @ MyFirstName = @ FirstName, @ MyLastName = @ LastName ?? –

+0

Да, это должно нормально работать http://msdn.microsoft.com/en-us/library/ms188332(SQL.90).aspx – ZippyV

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