Verwenden von Parametern zum Angeben von Daten- und Protokolldateipfaden während der Datenbankerstellung
Beim Erstellen einer Datenbank in SQL Server möchten Sie möglicherweise die angeben Pfad, in dem sich die Daten- und Protokolldateien befinden sollen. Dies kann besonders nützlich sein, um die Datenbankerstellung oder die Bereitstellung in verschiedenen Umgebungen zu automatisieren.
Um dies zu erreichen, können Sie Parameter in der CREATE DATABASE-Anweisung verwenden. Allerdings funktioniert der von Ihnen angegebene Code:
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
nicht so wie er ist. Dies liegt daran, dass Sie den Wert für @DataFilePath zweimal festgelegt haben, wodurch der beabsichtigte Wert überschrieben wird.
Stattdessen können Sie dynamisches SQL verwenden, um die CREATE DATABASE-Anweisung zur Laufzeit zu erstellen. So können Sie es tun:
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)
Dieser Ansatz stellt sicher, dass die Parameter in der dynamischen SQL-Anweisung korrekt referenziert werden, sodass Sie die gewünschten Dateipfade für Ihre Datenbank angeben können.
Das obige ist der detaillierte Inhalt vonWie werden Daten- und Protokolldateipfade beim Erstellen einer SQL Server-Datenbank mithilfe von Parametern angegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!