2009-07-26 208 views
7

我有一個插入存儲過程,它需要很多參數 - 其中2個是@FirstName,@LastName。 我也有一個更新存儲過程,它需要很多參數 - 其中2個是@FirstName,@LastName。如何從另一個存儲過程調用存儲過程?

我想要做的是,從插入SP,當它完成內部調用更新SP發送給它的@firstName,@LastName。

我不知道正確的語法來做到這一點;我試過了:

exec LandData_Update @FirstName, @LastName 

但我認爲這是錯誤的。

誰能告訴我如何寫這個電話?

如果我會打電話跟不同的PARAM名稱更新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 

您是否遇到錯誤?

編輯: 不要緊,什麼變量的名稱是,但你想,你可以聲明兩個新的變量是什麼。

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

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

然後使用新的變數。但是,Store Procedure不再關心變量的調用方式。

+0

如果我會用不同的參數名稱調用更新sp?如@MyFirstName,@MyLastName?會這樣寫:EXECUTE LandData_Update @ MyFirstName = @ FirstName,@ MyLastName = @ LastName ?? – 2009-07-26 11:35:47

+0

是的,這應該工作正常 http://msdn.microsoft.com/en-us/library/ms188332(SQL.90).aspx – ZippyV 2009-07-26 11:38:52