X

[SQL Server] 2012 データベース レベルでの非トランザクション アクセスの有効化

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′ )

以上で、データベース レベルでの非トランザクション アクセスの有効化が設定できました。

itsysgroup: