データベース作成時にパラメータを使用してデータおよびログ ファイルのパスを指定する
SQL Server でデータベースを作成するときに、データ ファイルとログ ファイルを配置するパス。これは、データベースの作成を自動化したり、さまざまな環境に展開したりする場合に特に役立ちます。
これを実現するには、CREATE DATABASE ステートメントのパラメーターを利用できます。ただし、指定したコード:
DECLARE @DataFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' DECLARE @LogFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' USE master Go CREATE DATABASE TestDB ON PRIMARY ( NAME = N'TestDB_Data', FILENAME = @DataFilePath ) LOG ON ( NAME = N'TestDB_Log', FILENAME = @LogFilePath ) GO
はそのままでは機能しません。これは、@DataFilePath の値を 2 回設定しているため、意図した値がオーバーライドされます。
代わりに、動的 SQL を利用して、実行時に CREATE DATABASE ステートメントを構築できます。その方法は次のとおりです。
DECLARE @sql AS NVARCHAR(MAX) SELECT @sql = 'CREATE DATABASE TestDB ON PRIMARY ( NAME = ''TestDB_Data'', FILENAME = ' + quotename(@DataFilePath) + ') LOG ON ( NAME = ''TestDB_Log'', FILENAME = ' + quotename(@LogFilePath) + ')' EXEC (@sql)
このアプローチにより、動的 SQL ステートメントでパラメーターが正しく参照されることが保証され、データベースに必要なファイル パスを指定できるようになります。
以上がパラメーターを使用して SQL Server データベースを作成するときにデータおよびログ ファイルのパスを指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。