程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2008數據庫中如何使用表值參數

SQL Server 2008數據庫中如何使用表值參數

編輯:關於SqlServer

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

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

1、用戶自定義表類型

當第一次看看新的表值參數,我認為使用此功能有點復雜。有幾個步驟。要做的第一件事是定義表型。在Management Studio 2008中的“Programmability”→“Type”節點,您可以看到“User-Defined Table Types(用戶自定義表類型)”,如圖1所示 。

圖 1:用戶自定義表類型

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

圖2:用戶自定義表類型創建語句

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

圖 3:指定模板參數列的數值

在填寫在適當的數值之後,點擊確定按鈕,一個“CREATE TYPE”的聲明取代了范本。這時,你也可以手動增加一些列,或者增加一些限制條件,最後點擊確定按鈕。

以下是最終的代碼:

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved