Search code examples
sqlsql-serverstored-proceduresparameterssqlparameter

How to call Stored Procedures (with 2 parameters) in a Stored Procedure?


I have stored procedures with same parameters (server name and date). I want to write a stored procedure and Exec them in that SP (called it SP_All).

CREATE PROCEDURE [dbo].[SP_All]
AS
BEGIN
exec sp_1   @myDate datetime, @ServerName sysname
exec sp_2   @myDate datetime, @ServerName sysname
exec sp_3   @myDate datetime, @ServerName sysname
exec sp_4   @myDate datetime, @ServerName sysname
END
Go 

error: Must declare the scalar variable "@myDate".


Solution

  • I see two issues here:

    1. Your procedure apparently takes two parameters, @myDate and @ServerName, which you have not declared yet. Do so by adding the names and the types between the procedure name and AS.
    2. When calling sp_1 to sp_4, there is no need to specify the data type of the parameters again (that's been taken care of by the declaration, see point 1).

      CREATE PROCEDURE [dbo].[SP_All]
          @myDate datetime,
          @ServerName sysname
      AS
      BEGIN
          exec sp_1 @myDate, @ServerName
          exec sp_2 @myDate, @ServerName
          exec sp_3 @myDate, @ServerName
          exec sp_4 @myDate, @ServerName
      END