多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > Sqlserver > SQL Server 2008數(shù)據(jù)庫中使用表值參數(shù)

SQL Server 2008數(shù)據(jù)庫中使用表值參數(shù)

來源:程序員人生   發(fā)布時間:2014-05-08 08:26:47 閱讀次數(shù):3373次

摘要:在SQL Server 2005或更早的版本中的數(shù)據(jù)庫中,表變量是不能作為存儲過程的參數(shù)的。SQL Server 2008中的T-SQL功能新增了表值參數(shù)。利用這個新增特性,我們可以很方便的將一個表作為參數(shù)傳給存儲過程,減少了應(yīng)用程序與SQL Server數(shù)據(jù)庫服務(wù)器之間的交互,提升了程序性能。

在SQL Server 2005或更早的版本中的數(shù)據(jù)庫中,表變量是不能作為存儲過程的參數(shù)的。當(dāng)多行數(shù)據(jù)到SQL Server需要發(fā)送多行數(shù)據(jù)到SQL Server ,開發(fā)者要么每次發(fā)送一列記錄,或想出其他的變通方法,以滿足需求。雖然在.net 2.0中提供了個SQLBulkCopy對象能夠?qū)⒍鄠€數(shù)據(jù)行一次性傳送給SQL Server,但是多行數(shù)據(jù)仍然無法一次性傳給存儲過程。

SQL Server 2008中的T-SQL功能新增了表值參數(shù)。利用這個新增特性,我們可以很方便地通過T-SQL語句,或者通過一個應(yīng)用程序,將一個表作為參數(shù)傳給存儲過程。

1、用戶自定義表類型

當(dāng)?shù)谝淮慰纯葱碌谋碇祬?shù),我認(rèn)為使用此功能有點(diǎn)復(fù)雜。有幾個步驟。要做的第一件事是定義表型。在Management Studio 2008中的“Programmability”“Type”節(jié)點(diǎn),您可以看到“User-Defined Table Types(用戶自定義表類型)”,如圖1所示 。

 

 

圖 1:用戶自定義表類型

點(diǎn)擊右鍵,在彈出菜單中選擇“新用戶定義的表型... ” ,會新建一個模板中的查詢窗口,如圖2所示 。

 

 

圖2:用戶自定義表類型創(chuàng)建語句

點(diǎn)擊“Specify Values for Template Parameters(指定值為模板參數(shù))”按鈕,將探出一個對話框,如圖3所示。

 

 

圖 3:指定模板參數(shù)列的數(shù)值

在填寫在適當(dāng)?shù)臄?shù)值之后,點(diǎn)擊確定按鈕,一個“CREATE TYPE”的聲明取代了范本。這時,你也可以手動增加一些列,或者增加一些限制條件,最后點(diǎn)擊確定按鈕。

以下是最終的代碼:

 

-- ================================-- Create User-defined Table Type-- ================================USE TestGO-- Create the data typeCREATE TYPE dbo.MyType AS TABLE (	col1 int NOT NULL, 	col2 varchar(20) NULL, 	col3 datetime NULL,     PRIMARY KEY (col1))GO


 

在運(yùn)行代碼之后,對象的定義就建立好了,你可以在“User-Defined Table Type(用戶自定義表類型”中查看屬性,如圖4所示,但沒法修改它們。如果要修改的類型,你只能將其刪除,然后按照修改后的屬性再次創(chuàng)建它。

 

 

圖4:查看用戶自定義表類型的屬性

2、使用用戶自定義的表類型

如果打算在T-SQL代碼中使用,您還必須創(chuàng)建一個新類型的變量,然后將具體的表的名稱賦值給該變量。一旦賦值后,您可以在其他的T-SQL語句中使用它。因?yàn)樗且粋€變量,在批處理完成后,它也自動失效,結(jié)束生命周期。

請注意下面的代碼,MyType是我們之前剛剛創(chuàng)建的數(shù)據(jù)類型。

 

DECLARE @MyTable MyTypeINSERT INTO @MyTable(col1,col2,col3)VALUES (1,'abc','1/1/2000'),	(2,'def','1/1/2001'),	(3,'ghi','1/1/2002'),	(4,'jkl','1/1/2003'),	(5,'mno','1/1/2004')	SELECT * FROM @MyTable


 

在變量的有效范圍內(nèi),你可以象操作正常的表一樣來操作這個變量,如與另一個表象關(guān)聯(lián)或者將變量中的記錄填充到另一個表。對于表變量來說,你無法修改表定義。

正如前面提到的,變量不能超出它的有效的范圍。如果T-SQL腳本由多個批處理組成,變量只有在批處理內(nèi)才能創(chuàng)建并有效使用。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久久久欧美精品 | 国产极品粉嫩交性大片 | 国产成人黄网址在线视频 | 欧美二区在线观看 | 国产叼嘿视频在线观看 | 欧洲亚洲一区二区三区 | 中文字幕在线看片 | 一本大道加勒比久久 | 最近中文字幕免费版在线3 最近中文字幕免费大全8高清 | 免费a级特黄国产大片 | 国产自在自拍 | 最近中文字幕无吗免费视频 | 级毛片久久久毛片精品毛片 | 久久免费视频观看 | 亚洲九色 | 亚洲日本在线观看网址 | 久久精品国内一区二区三区 | 免费视频网站在线观看 | 国产人成亚洲第一网站在线播放 | 亚洲精品视频观看 | 国产一级一级片 | 91免费福利视频 | 爱爱小视频在线看免费 | 亚洲欧洲日产国码二区首页 | 中文字幕一二三区乱码老 | 亚洲美女视频 | 一区二区中文字幕亚洲精品 | 久久精品国产精品2020 | 国产丝袜一区二区三区在线观看 | 亚洲精品高清在线观看 | 欧美xxxxx69xxxx| 国产精品久久久久久久久 | 网址在线 | 中文字幕第23页 | 2021午夜国产精品福利 | 日本free护士videosxxxx动漫 | 日韩美一区二区三区 | 亚洲国产精品久久综合 | 亚洲成人自拍网 | 亚洲第一区在线 | 亚洲综合欧美在线 |