2009-07-26 40 views
7

Tengo un procedimiento insert insertado que toma muchos parámetros, 2 de ellos son @FirstName, @LastName. También tengo un procedimiento almacenado de actualización que toma muchos parámetros, 2 de ellos son @FirstName, @LastName.Cómo llamar a un procedimiento almacenado desde otro procedimiento almacenado?

Lo que quiero hacer es, desde el interior de la inserción SP, cuando se hace, llamar a la actualización SP y enviarle el @FirstName, @LastName.

No conozco la sintaxis correcta para hacer eso; Intenté:

exec LandData_Update @FirstName, @LastName 

Pero creo que está mal.

¿Alguien me puede decir cómo escribir esta vocación?

¿Y si llamaré a la actualización sp con diferentes nombres de param? Como @MyFirstName, @MyLastName? ¿Lo escribiría así: EXECUTE LandData_Update @[email protected], @[email protected]?

Respuesta

12

¿Qué te hace pensar que está mal?

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

    EXECUTE LandData_Update @FirstName, @LastName 
END 

¿Recibes un error o algo?

EDIT: No importa lo que el nombre de las variables son, sino hacer lo que se desea se puede declarar dos nuevas variables.

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

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

Y a continuación, utilice las variables nuevas. Pero, de nuevo, al Procedimiento de almacenamiento no le importa cómo se llaman las variables.

+0

y si llamaré a la actualización sp con diferentes nombres de parámetros? como @MyFirstName, @MyLastName? lo escribirá así: EJECUTAR LandData_Update @ MyFirstName = @ FirstName, @ MyLastName = @ LastName ?? –

+0

Sí, eso debería funcionar bien http://msdn.microsoft.com/en-us/library/ms188332(SQL.90).aspx – ZippyV

Cuestiones relacionadas