2009-07-26 1 views
7

Ho una procedura di inserimento memorizzato che richiede molti parametri, due dei quali sono @ NomeFirst, @LastName. Ho anche una stored procedure di aggiornamento che richiede molti parametri - 2 di loro sono @ NomeFirst, @LastName.Come chiamare una stored procedure da un'altra stored procedure?

Quello che voglio fare è, dall'interno dell'Sp dell'inserto, quando è terminato, chiamare l'SP di aggiornamento e inviarlo a @FirstName, @LastName.

Non conosco la sintassi corretta per farlo; Ho provato:

exec LandData_Update @FirstName, @LastName 

Ma penso che sia sbagliato.

Qualcuno può dirmi come scrivere questa chiamata?

E se chiamerò l'aggiornamento sp con nomi di parametri diversi? Ad esempio @MyFirstName, @MyLastName? Lo scriverei in questo modo: EXECUTE LandData_Update @[email protected], @[email protected]?

risposta

12

Cosa ti fa pensare che sia sbagliato?

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

    EXECUTE LandData_Update @FirstName, @LastName 
END 

Hai ricevuto un errore o qualcosa del genere?

EDIT: Non importa quale sia il nome delle variabili sono, ma per fare ciò che si desidera è possibile dichiarare due nuove variabili.

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

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

E quindi utilizzare le nuove variabili. Ma ancora una volta, la stored procedure non si preoccupa di ciò che vengono chiamate le variabili.

+0

e se chiamerò l'aggiornamento sp con nomi param diversi? come @MyFirstName, @MyLastName? lo scriverà così: EXECUTE LandData_Update @ MyFirstName = @ FirstName, @ MyLastName = @ LastName ?? –

+0

Sì, che dovrebbe funzionare bene http://msdn.microsoft.com/en-us/library/ms188332(SQL.90).aspx – ZippyV