如何在存储过程中调用存储过程带有2个参数?

问题描述

在这里看到两个问题:

  1. 您的过程显然带有两个参数@myDate@ServerName,您尚未声明。为此,请在过程名称和AS之间添加名称和类型。
  2. 当将sp_1调用到sp_4时,无需再次指定参数的数据类型(声明已处理了该数据类型,请参见第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

解决方法

我的存储过程具有相同的参数(服务器名称和日期)。我想编写一个存储过程,并在该SP(称为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

错误:必须声明标量变量“ @myDate”。