In SQL Server ist es möglich, dynamisch eine Datenbank mithilfe von Parametern zu erstellen, um den Speicherort von Daten- und Protokolldateien anzugeben. Ihr ursprünglicher Ansatz führte jedoch zu einem Fehler im Zusammenhang mit der Verwendung von Variablen in der CREATE DATABASE-Anweisung.
Um diese Einschränkung zu überwinden, können Sie dynamisches SQL verwenden, mit dem Sie SQL-Anweisungen programmgesteuert erstellen und ausführen können. So können Sie Ihr Ziel erreichen:
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)
Dieser Ansatz verwendet die Funktion quotename(), um die Variablenwerte innerhalb der dynamischen SQL-Anweisung richtig in Anführungszeichen zu setzen. Der EXEC-Befehl führt dann die konstruierte Anweisung aus, sodass Sie die Datenbank erstellen und die gewünschten Dateipfade angeben können.
Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch eine SQL Server-Datenbank mithilfe von Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!