我得到一個錯誤不正確的語法
附近有語法錯誤=
在執行此過程:
DECLARE @I_BRANCH_ID VARCHAR(MAX)
EXEC GETBALANCE CASE WHEN @I_BRANCH_ID ='' THEN 0 ELSE @I_BRANCH_ID END
我得到一個錯誤不正確的語法
附近有語法錯誤=
在執行此過程:
DECLARE @I_BRANCH_ID VARCHAR(MAX)
EXEC GETBALANCE CASE WHEN @I_BRANCH_ID ='' THEN 0 ELSE @I_BRANCH_ID END
你不能把有條件的語法轉換爲像這樣的EXECUTE語句。
相反,嘗試:
IF (@I_BRANCH_ID = '')
SET @I_BRANCH_ID = '0'
EXECUTE GetBalance @I_BRANCH_ID
編輯:
隨着越來越多的參數,可以您可以簡化到:
SELECT @param1 = CASE WHEN @param1 = '' THEN '0' ELSE @param1 END,
@param2 = CASE WHEN @param2 = '' THEN '0' ELSE @param2 END,
@param3 = CASE WHEN @param3 = '' THEN '0' ELSE @param3 END
... etc etc
實際上我沒有任何關於我只使用THORUGH情況陳述的假設我不能使用 – user1831355
嘗試從EXECUTE語句單獨設置變量的值:
DECLARE @I_BRANCH_ID VARCHAR(MAX)
SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN 0 ELSE @I_BRANCH_ID END
EXEC GETBALANCE @I_BRANCH_ID
DECLARE @I_BRANCH_ID VARCHAR(MAX)
SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN '0' ELSE @I_BRANCH_ID END
EXEC GETBALANCE @I_BRANCH_ID
請關閉你的大寫鎖定。 – hims056
請停止大喊! –
你已經問過這個問題 - [如何在執行存儲過程的參數中使用大小寫?](http://stackoverflow.com/questions/13795625/how-to-use-case-in-arguments-of-executing - 存儲過程) - 所以請刪除此副本。 – Bridge