iT邦幫忙

0

MS SQL 問題一問

  • 分享至 

  • xImage

最近看到一個程式
在PROCEDURE 內不會出現語法錯誤

ALTER PROCEDURE 
(
 @A1 VARCHAR(MAX) = NULL OUTPUT  --回傳參數
)
as ...

但不再PROCEDURE下此語法會出現語法錯誤

DECLARE @A1 VARCHAR(MAX) = NULL OUTPUT  --回傳參數

請問如果要將此變數拿到非PROCEDURE下試跑
該如何下,謝謝。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
純真的人
iT邦大師 1 級 ‧ 2021-09-12 07:37:42
最佳解答

恩??
外面試跑~不就只有這樣嗎?(拿掉回傳 OUTPUT)
但不知道你的問題還有什麼0.0a

DECLARE @A1 VARCHAR(MAX) = NULL
看更多先前的回應...收起先前的回應...
阿偉 iT邦新手 2 級 ‧ 2021-09-12 08:12:54 檢舉

請問一下 OUTPUT 回傳參數的值
為何在試跑的時候不用給?

那個是PROCEDURE 專用搭配參數呀@@...
就像function會搭配return是一樣的..
你把return放在function外面直接試跑也會錯的~
不過看你怎麼用吧@@~
參考
https://docs.microsoft.com/zh-tw/sql/relational-databases/stored-procedures/return-data-from-a-stored-procedure?view=sql-server-ver15

johnqq iT邦新手 5 級 ‧ 2021-09-12 10:41:45 檢舉

output是procedure的引數,使用procedure可以選擇要不要使用output
procedure裡面的主程序只有你的DECLARE @A1 VARCHAR(MAX) = NULL
你的主程序如果沒引用到其他東西,可以單獨執行
如果單獨執行你的主程序後面加個output,但卻沒有包在procedure之內,編譯器看不懂output是什麼,自然就會造成錯誤
參考
https://docs.microsoft.com/zh-tw/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-ver15

阿偉 iT邦新手 2 級 ‧ 2021-09-13 08:51:39 檢舉

謝謝兩位前輩指點

我要發表回答

立即登入回答