Dans un script SQL récent, vous avez tenté de spécifier le chemin de création de données et de fichiers journaux à l'aide de paramètres. Cependant, vous avez rencontré une erreur due à une syntaxe incorrecte à proximité de « @DataFilePath ». Explorons le problème et proposons une solution viable.
La syntaxe de CREATE DATABASE ne prend pas en charge l'utilisation directe des paramètres. Pour surmonter cette limitation, le SQL dynamique peut être utilisé.
Le SQL dynamique vous permet de construire des instructions SQL au moment de l'exécution à l'aide d'une variable de chaîne (@sql). En concaténant les valeurs de chemin dans @sql, vous pouvez créer une instruction CREATE DATABASE paramétrée.
-- Declare variables DECLARE @DataFilePath AS NVARCHAR(MAX) DECLARE @LogFilePath AS NVARCHAR(MAX) -- Set path values SET @DataFilePath = N'C:\ProgramData\Gemcom\' SET @LogFilePath = N'C:\ProgramData\Gemcom\' -- Construct 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 dynamic SQL EXEC (@sql)
La fonction QUOTENAME() garantit que les valeurs de chemin sont correctement citées pour être utilisées dans l'instruction SQL. Cela évite les erreurs causées par des caractères spéciaux ou des espaces dans le chemin.
En utilisant du SQL dynamique et des valeurs de chemin paramétrées, vous pouvez spécifier avec succès les chemins de fichiers de votre base de données et des fichiers journaux dans un script SQL à l'aide de paramètres.
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!