0
我有一個存儲過程,看起來像這樣:不能提供參數,我的存儲過程
CREATE PROC [dbo].[UpdateLastCleanDatesNormalSchedule]
@BaseDate DATETIME = NULL
AS
IF @BaseDate IS NULL
SET @BaseDate=GETDATE()
UPDATE Locations
SET LastCleaned=dbo.fnFindTheLastDay(vw.CleanDay,@BaseDate,LastCleaned)
FROM Locations
INNER JOIN vwMostRecentCleanDay vw ON
Locations.NormalFrequencyCode=vw.FrequencyCode
的代碼非常簡單,你可以看到,調用一個函數來更新一個街道清潔數據數據庫與上次清理位置的日期。
這是我的問題。 這工作:
EXEC dbo.UpdateLastCleanDatesNormalSchedule
但這並不:
EXEC dbo.UpdateLastCleanDatesNormalSchedule GETDATE()
和也沒有這樣的:
EXEC dbo.UpdateLastCleanDatesNormalSchedule @BaseDate=GETDATE()
這兩種結果的誤差
Incorrect syntax near ')'.
的如果我徘徊通過調用GETDATE()的右括號,工具提示報告「附近的語法不正確」)。期待SELECT或「(」
如果我想在一個特定的日期通過,試試這個:
EXEC dbo.UpdateLastCleanDatesNormalSchedule CONVERT(Datetime,'01 September 2016')
我得到的錯誤
Incorrect syntax near the keyword 'CONVERT'.
但是,如果我傳遞的日期一個純粹的字符串:
EXEC dbo.UpdateLastCleanDatesNormalSchedule '01 September 2016'
然後它
。在絕望的希望,這是一種小故障,而不是我的錯誤,我試圖刪除和重新創建proc,但沒有運氣。
我很困惑。誰能幫忙?
由於當參數值爲NULL時已經使用'GETDATE()',爲什麼不將NULL傳遞到存儲過程以使其工作? – Bridge