0
我想在我的過程中使用參數變量exec()
。過程中的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「。Msg 102,Level 15,State 1,Line 21
'sp_CostActualTabular'附近語法不正確。
sp_CostBudgetedTabular
和sp_CostActualTabular
是其中取日期作爲參數
邊注過程:[CREATE PROCEDURE](https://msdn.microsoft.com/en-us/library/ms187926.aspx ):「避免在命名過程中使用** sp _ **前綴,這個前綴被SQL Server用來指定系統過程」 –
另外,你爲什麼要在完全靜態的字符串上執行'EXEC'?爲什麼不直接在這個過程中直接使用代碼? –
@Damien_The_Unbeliever感謝您的建議,下次我將在創建過程時記住它。你能幫我解決我目前遇到的問題嗎? – Shahzad