Si j'ai FOO.SQL et BAR.SQL dans le même dossier, FOO.SQL peut référence à la bar.SQL lorsqu'il est exécuté à partir de SSDT en mode SQLCMD avec :r ".\bar.sql"
. Cependant, SSMS ne le trouvera pas. Procmon montre que SSMS recherche dans %systemroot%\syswow64
:
Comment puis-je dire SSMS de regarder dans le dossier que le script actuel est enregistré sans déclarer explicitement le chemin?
Je pourrais avoir tort, mais je ne pense pas que c'est possible. Veuillez consulter ces liens pour un exemple de ce que d'autres ont fait (aucun n'est idéal).
Je recommande de sauvegarder votre fichier de variables SQLCMD dans 'C:\users\Your_nt_login_name\AppData\local\Temp' et référencez-le de tous mes projets en tant que $ (TEMP)\sqlcmd_variables.sql.