【发布时间】:2016-04-25 23:06:12
【问题描述】:
我正在尝试在我的过程中使用参数变量exec()。
程序如下:
CREATE PROCEDURE [dbo].[sp_CostBudgetedTabular](@start AS datetime)
AS
BEGIN
Exec('Declare @tempActual Table(MonthName nvarchar(MAX),Total float);
Declare @tempBudgeted Table(MonthName nvarchar(MAX),Total float);
insert into @tempBudgeted sp_CostBudgetedTabular @start
insert into @tempActual sp_CostActualTabular @start ')
它正在抛出错误:
消息 102,第 15 级,状态 1,第 20 行
“sp_CostBudgetedTabular”附近的语法不正确。消息 102,第 15 级,状态 1,第 21 行
“sp_CostActualTabular”附近的语法不正确。
sp_CostBudgetedTabular 和sp_CostActualTabular 是以日期为参数的过程
【问题讨论】:
-
旁注:CREATE PROCEDURE:“在命名过程时避免使用 sp_ 前缀。SQL Server 使用此前缀来指定系统过程”
-
另外,你为什么要在一个完全静态的字符串上使用
EXEC?为什么不直接在此过程中使用代码? -
@Damien_The_Unbeliever 感谢您的建议,下次创建程序时我会牢记这一点。你能帮我解决我目前遇到的问题吗?
标签: sql-server stored-procedures