2017-03-03 17 views
1

我有以下存儲過程的代碼:錯誤試圖在選擇使用賦值給變量程序時「:=」

BEGIN 
DECLARE procvar INT; 
SELECT @uservar := portid(); 
SELECT procvar := portid(); 
END 

我得到第二個SELECT語句的語法錯誤。

所以賦值給一個用戶會話變量(@uservar),但是試圖給本地聲明的變量賦值(procvar)會引發語法錯誤。

我無法在文檔中找到任何直接引用:=運算符 - 所有示例都使用@vars。任何人都可以解釋由第二個SELECT語句破壞的語法規則是什麼?

回答

2

更改此DECLARE XX INT;set @XX = 0;

+0

更新了答案 –

+0

感謝@reds。我想我沒有說清楚。問題/代碼的重點是顯示用戶會話變量是否正常(SELECT \ @XX:= ...有效),但在過程中聲明的變量不是(SELECT XX:= failed) - 我想知道爲什麼我在這個問題上找不到任何文檔。我會澄清這個問題。 – Nikkorian