2011-05-10 30 views
4

我是SQL新手,現在正在使用存儲過程。 我看其他開發人員的代碼,我看到了這樣的說法:幫助理解SQL存儲過程參數

ALTER PROCEDURE [deleteRecords_UNICODE] 
@RecordIDs ty_NumberList READONLY 

問題1:什麼是「ty_NumberList」是什麼意思?

問題2:我正在創建需要使用上述參數的存儲過程。 當我創建「DECLARE @RecordNum INT」,我明明得到了

Operand type clash: int is incompatible with ty_NumberList 

錯誤我猜我已經來解決此問題:
一)創建類型的變量「ty_NumberList」
b),然後用我平時DECLARE去@RecordNum詮釋
C),然後通過@RecordNum的價值爲ty_NumberList

問題3:我怎麼會去實現在SQL上面的步驟?

任何幫助將不勝感激!

回答

4

ty_NumberListtable valued parameter的類型。

你會使用它像

DECLARE @Nums AS ty_NumberList; 

INSERT INTO @Nums VALUES (1); 

EXEC YourProc @Nums; 
+0

怎麼樣的代碼使得它的表值參數?沒有看到CREATE TYPE語句不能是任何用戶定義的類型? – 2011-05-10 16:12:29

+1

對於TVP來說'READONLY'是強制性的(不確定它對於其他數據類型是否有效,但無論如何它的存在和類型的名稱將向我指示TVP) – 2011-05-10 16:13:23

+0

謝謝。有效! – Ray 2011-05-10 16:49:14

0

閱讀本

ty_number意味着你必須告訴我們 ,因爲它的用戶定義的數據類型

,同時宣佈該存儲過程 參數

我們沒有必要使用申報

創建PROC樣品@name vanchar(20), @num VARCHAR(20)開始

選擇... ..... .......