TableTypeの作成方法 | SQL Server
- 2016/12/08
- 21:35
今回は SQL Server 上で Table Type を作成する方法をご紹介いたします。
Table Type とは通常 ストアドプロシージャ等によく用いられますが、引数としてテーブルを渡すというイメージの処理が可能です。
引数としてテーブルを渡す実際のサンプルコードは以下のようになります。引数にTableTypeの@TestTableを渡しています。
USE testDB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS dbo.TestProcedure
GO
CREATE PROCEDURE dbo.TestProcedure
@Code INT,
@TestTable dbo.TestTableType READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM @TestTable
WHERE TestCode = @Code
;
END;
GO

※写真ではなぜか赤色の波線が付いてますが、コンパイル可能です。
※TableTypeを渡す場合はReadOnlyが必要です。つけないとコンパイル通りません。
前提条件
・Windows 7 professional 以降 / Windows Server 2008 R2 以降
・SQL Server 2005 Developer / Standard / Enterprise 以降
1.TableTypeの作成方法
CREATE TYPE dbo.TestTableType AS TABLE
(
TestCode int
)
GO
テーブルの定義と同様に括弧の中にフィールド定義を記述します。
テーブルで定義できるフィールドはTableTypeでも定義可能です。
2.権限の付与
GRANT EXEC ON TYPE::dbo.TestTableType TO [BUILTIN\Administrators]
GO
TYPE::テーブルタイプ名
というところがポイントですね。「TYPE::」がないとエラーでコンパイルが通りません。
次回は TableType を使用して VB.NET の DataTable のデータを一括で更新する方法をご紹介いたします。
最後までお読みいただき、ありがとうございます。
他にも SQL Server に関する記事をご紹介しておりますのでご参考頂ければ幸いです。