Comment passer des paramètres à un script SQL Server appelé avec sqlcmd?
-
26-09-2019 - |
Question
Est-il possible de passer des paramètres à un script SQL Server? J'ai un script qui crée une base de données. Il est appelé à partir d'un fichier batch en utilisant sqlcmd. Une partie de ce script SQL est la suivante:
CREATE DATABASE [SAMPLE] ON PRIMARY
( NAME = N'SAMPLE', FILENAME = N'c:\dev\SAMPLE.mdf' , SIZE = 23552KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'SAMPLE_log', FILENAME = N'c:\dev\SAMPLE_log.ldf' , SIZE = 29504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Je veux être en mesure de passer dans les noms de fichiers pour la base de données et le journal pour que je n'ai pas hardcode « C: \ dev \ SAMPLE.mdf » et « C: \ dev \ SAMPLE_log.ldf ».
Est-il possible de le faire? J'exécute Microsoft SQL Server 2008 Express. Faites-moi savoir si vous avez besoin de plus d'informations.
La solution
Utilisez le commutateur -v pour passer dans les variables.
sqlcmd -v varMDF="C:\dev\SAMPLE.mdf" varLDF="C:\dev\SAMPLE_log.ldf"
Ensuite, dans votre fichier script
CREATE DATABASE [SAMPLE] ON PRIMARY
( NAME = N'SAMPLE', FILENAME = N'$(varMDF)' , SIZE = 23552KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'SAMPLE_log', FILENAME = N'$(varLDF)' , SIZE = 29504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow