【发布时间】:2013-07-01 05:44:49
【问题描述】:
我有具有相同参数(服务器名称和日期)的存储过程。我想编写一个存储过程并在该 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”。
【问题讨论】:
-
放参数/@myDate datetime, /@ServerName sysname
-
附注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀! -
虽然您的问题是一个基本问题,但 +1 用于添加完整的代码示例、完整的错误消息以及对代码应该做什么的解释。太多的问题至少缺少其中一个...
标签: sql sql-server stored-procedures parameters sqlparameter