[SQL Server] 2012 データベース レベルでの FILESTREAM ファイル グループの指定

SQL Server 2012の機能のFILETABLEを使用するためには、
予め「インスタンス レベルでの FILESTREAM の有効化」 を実施した後、
データベース レベルでの FILESTREAM ファイル グループの指定が必要になります。
FILESTREAM は特殊なファイル グループを使用するので、データベースの作成時に少なくとも 1 つのファイル グループに対して CONTAINS FILESTREAM 句を指定する必要があるからです。

新規でDATABASEを作成する場合は、CREATE DATABASEからも指定できます。
下の例は、TEST2というDATABASEを作成し、FileStreamGroup1 というFILESTREAM ファイル グループを指定しました。
CREATE DATABASE TEST2
ON
PRIMARY ( NAME = TEST2,
FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TEST2.mdf’),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = TEST2fs,
FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\filestream2’)
LOG ON ( NAME = TEST2log1,
FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TEST2log1.ldf’)
GO

既存のDATABASEに追加する場合は、ALTER DATABASEを使用します。
下の例は、TEST3という既存のDATABASEに対し、
■FileStreamGroup3 というFILESTREAM ファイル グループを指定し、
ALTER DATABASE TEST3
ADD FILEGROUP FileStreamGroup3 CONTAINS FILESTREAM

■そのファイルストリームにfilestream3というファイルを追加しましましす。
ALTER DATABASE TEST3
ADD FILE
( NAME = ‘TEST3fs’,
FILENAME = ‘C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\filestream3’
)
TO FILEGROUP FileStreamGroup3

ALTER DATABASEを使用しないで、データベースのプロパティ設定画面からも指定することもできます。
まずは、目的のDATABASEのプロパティ画面を開きます。
■ファイルグループを追加

1)左側メニューの「ファイルグループ」をクリック
2)FILESTREAMの追加をクリック
3)名前を入力
4)ファイルグループを追加できたので、次のファイル指定をするために左側メニューの「ファイル」をクリック
■ファイルの追加

1)データベースファイルを追加する為に、右下の「追加」をクリック
2)新たに行が追加されるので、その行のファイルの種類をFILESTREAMに指定
3)ファイルグループの指定は、先程上で作成したファイルグループを選択
4)パスを指定
5)最後に「OK」をクリック

以上で、DATABASEにFILESTREAM ファイル グループを指定することができました。