SQL Server 2012の機能のFILETABLEを使用するためには、
予め「インスタンス レベルでの FILESTREAM の有効化」 を実施した後、
データベース レベルでの非トランザクション アクセスの有効化が必要になります。
また、データベース レベルでの FileTable のディレクトリ指定も必要です。
この2つの処理は一緒にできます。
なぜ必要になるか?、私にも判っていませんが、必要だそうです。
そもそも、非トランザクションとは。。。というのも判っていません。
トランザクション処理を全く実行されないモード?という曖昧な感じで考えている程度です^^;
ちなみに、使用できる非トランザクション アクセスのレベルは、FULL、READ_ONLY、および OFF です。
OFF・・・・・・・・・・・通常。普通のトランザクションを実施するモード
FULL・・・・・・・・・・完全アクセス。制限なしでアクセスできるモード
READ_ONLY・・・読み取り専用アクセス。読み取り専用モード
。。。。。。だと思います^^;;;
また、ファイルシステムとして FIleTable にアクセスをする際に使用するパスは、FILESTREAM ディレクトリ名に指定します。
では、設定方法に
既存のDATABASEに変更を加えます。
ALTER DATABASE TEST3
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’C001′ )
ちなみに、データベースのプロパティ設定画面からでも指定できます。
その場合は、「オプション」の一番上にFILESTREAMが表示されていますので
そのFILESTREAMディレクトリ名、FILESTREAM 非トランザクション アクセスを設定します。
FILESTREAMディレクトリ名は、データベースの中で一意になるようにする必要が有ります。
もし、幾つかに分ける場合、重ならないように設計する必要があります。
新規のDATABESEの場合、以下のようにWITH FILESTREAM句を指定します。
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’C001′ )
以上で、データベース レベルでの非トランザクション アクセスの有効化が設定できました。