Dans SQL Server, il est possible de créer dynamiquement une base de données à l'aide de paramètres pour spécifier l'emplacement des données et des fichiers journaux. Cependant, votre approche initiale a entraîné une erreur liée à l'utilisation de variables dans l'instruction CREATE DATABASE.
Pour surmonter cette limitation, vous pouvez utiliser du SQL dynamique, qui vous permet de construire et d'exécuter des instructions SQL par programme. Voici comment vous pouvez atteindre votre objectif :
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)
Cette approche utilise la fonction quotename() pour citer correctement les valeurs des variables dans l'instruction SQL dynamique. La commande EXEC exécute ensuite l'instruction construite, vous permettant de créer la base de données et de spécifier les chemins de fichiers souhaités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!