SQL Server では、データ ファイルとログ ファイルの場所を指定するパラメーターを使用してデータベースを動的に作成できます。ただし、最初のアプローチでは、CREATE DATABASE ステートメントでの変数の使用に関連するエラーが発生しました。
この制限を克服するには、プログラムで SQL ステートメントを構築して実行できる動的 SQL を採用できます。目的を達成する方法は次のとおりです。
DECLARE @DataFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' DECLARE @LogFilePath AS NVARCHAR(MAX) SET @LogFilePath = N'C:\ProgramData\Gemcom\' -- Construct the dynamic SQL statement SELECT @sql = 'CREATE DATABASE TestDB ON PRIMARY ( NAME = ''TestDB_Data'', FILENAME = ' + quotename(@DataFilePath) + ') LOG ON ( NAME = ''TestDB_Log'', FILENAME = ' + quotename(@LogFilePath) + ')' -- Execute the dynamic SQL statement EXEC (@sql)
このアプローチでは、quotename() 関数を使用して、動的 SQL ステートメント内の変数値を適切に引用符で囲みます。次に、EXEC コマンドによって構築されたステートメントが実行され、データベースを作成して必要なファイル パスを指定できるようになります。
以上がパラメーターを使用して SQL Server データベースを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。