Rah*_*aha 10 sql sql-server parameters stored-procedures sqlparameter
我有相同参数(服务器名称和日期)的存储过程.我想编写一个存储过程并在该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
Run Code Online (Sandbox Code Playgroud)
错误:必须声明标量变量"@myDate".
我在这里看到两个问题:
@myDate
并且@ServerName
您还没有声明.通过在过程名称和AS之间添加名称和类型来执行此操作.将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
Run Code Online (Sandbox Code Playgroud)试试这个——
CREATE PROCEDURE [dbo].[SP_All]
@myDate DATETIME
, @ServerName SYSNAME
AS BEGIN
EXEC dbo.sp_1 @myDate, @ServerName
EXEC dbo.sp_2 @myDate, @ServerName
EXEC dbo.sp_3 @myDate, @ServerName
EXEC dbo.sp_4 @myDate, @ServerName
END
Run Code Online (Sandbox Code Playgroud)