'返回值'是一個執行狀態指示器,是一個整數。這並不意味着要傳回數據。 成功標準值爲0,失敗爲1,但您可以傳回SP中的任何整數以反映許多不同的狀態。
從SQL Server幫助文件:
@ RETURN_STATUS是存儲模塊的 返回狀態的可選整數變量。在EXECUTE 語句中使用該變量之前,必須在 批處理,存儲過程或函數中聲明該變量。
當用於調用標量值用戶定義的函數時,@ return_status變量可以是任何標量數據類型。
如果您想要返回不同的數據類型(並且能夠查詢這些數據的'類型'),請使用'輸出參數'。輸出參數可以是任何數據類型,一旦SP存在,您可以查詢sys.parameters系統表,傳入您的SP的object_id(或僅加入到object.id和filter過程名稱上的sys.procedures),將sys .parameters到sys.types(在user_type_id上)獲取每個參數的sql數據類型名稱,包括輸出參數
Eg
DECLARE @Param3 bigint
exec dbo.MySPName @Param1, @Param2, @Param3 output
SELECT @Param3 --gives you output value
--This will give you the names and data types of all output parameters in this SP
SELECT p.name, t.name as [type], p.max_length, is_output
FROM sys.parameters p
JOIN sys.types t ON p.user_type_id = t.user_type_id
WHERE p.object_id = OBJECT_ID(N'MySPName')
AND p.is_output = 1
對於標量值函數,在參數和類型的表此相同的查詢將返回一個無名參數(p.name爲空字符串/空白) - 這代表了UDF的返回值包含在產品包裝中的數據類型。但是Store Procedures只能有'返回狀態'整數。
來源
2013-02-14 15:06:17
ari
你究竟需要什麼和問題是什麼? Did not quite got it – DevelopmentIsMyPassion 2013-02-14 14:21:27
請清楚..?我們沒有得到你想要的。 – 2013-02-14 14:22:46
我需要關於返回值類型的信息。例如,名稱是「varchar」或「nvarchar」,Id是「int」或「bigint」 – 2013-02-14 14:28:16