SQL Server 2008 のユーザー定義テーブル型とテーブル値パラメータ その1

SQL Server 2008 からは、「ユーザー定義テーブル型」と「テーブル値パラメータ」がサポートされました。
ユーザー定義テーブル型(User-Defined Table Type)は、ユーザー定義の Table データ型に対して、名前を付けて型(Type)として保存できる機能です。
テーブル値パラメータ(Table-Valued Parameters)は、ユーザー定義テーブル型をパラメータ(ストアド プロシージャなどの引数)として指定できる機能です。

これは次のように試すことができます。

-- ユーザー定義テーブル型の作成
CREATE TYPE testTableType
  AS TABLE ( a int, b varchar(100) )
go
-- テーブル値パラメータを利用したストアド プロシージャの作成
CREATE PROCEDURE testProc1
  @tvp testTableType READONLY
AS
  INSERT INTO t1
    SELECT * FROM @tvp

作成したユーザー定義テーブル型へ値を代入し、それをストアド プロシージャへ渡して実行するには、次のように記述します。

-- ユーザー定義テーブル型を利用した変数 @tvp1 の宣言
DECLARE @tvp1 AS testTableType

-- 変数 @tvp1 へ値の格納
INSERT INTO @tvp1 (a, b)
 VALUES ( 7, 'AAAAAA')
       ,( 8, 'BBBBBB')

-- ストアド プロシージャの実行
EXEC testProc1 @tvp1

-- 結果の確認
SELECT * FROM t1


そのほかの SQL Server 2008 の新機能の具体的な利用方法については、弊社執筆の SQL Server 2008 自習書シリーズ(下記 URL)の「SQL Server 2008 の注目の新機能をイチ早く試してみよう! 」編を参考にしてみてください。
http://www.microsoft.com/japan/sqlserver/2008/self-learning/default.mspx