Partager via


Création et modification de scripts de base de données

Les scripts de base de données sont des fichiers supplémentaires contenant des instructions ou des utilitaires Transact-SQL, tels que le mode SQLCMD, qui ne font pas partie de la définition du schéma de base de données. Vous pouvez utiliser des scripts de base de données dans le cadre de l'étape de déploiement (scripts de prédéploiement et de post-déploiement). Vous pouvez également stocker des scripts de gestion générale dans le projet de base de données.

Si vous renommez un objet de base de données, vous pouvez utiliser la refactorisation de base de données pour mettre à jour automatiquement toutes les références à cet objet dans vos scripts.

Scripts de déploiement

Lorsque vous générez votre projet de base de données, le script de prédéploiement, les définitions d'objet de base de données et le script de post-déploiement sont compilés dans un fichier de schéma de base de données (.dbschema). Vous ne pouvez spécifier qu'un seul script de prédéploiement et qu'un seul script de post-déploiement, mais vous pouvez utiliser SQLCMD pour inclure d'autres scripts depuis ces scripts. Pour plus d'informations, consultez Insertion de plusieurs scripts dans l'étape de prédéploiement ou de post-déploiement. Lorsque vous générez le projet de base de données, tous les scripts inclus sont fusionnés dans le script de compilation.

Par défaut, votre projet de base de données contient un script de prédéploiement vide et un script de post-déploiement vide. Ces scripts sont nommés script.predeployment.sql et script.postdeployment.sql.

Vous désignez un script de prédéploiement en affectant la valeur PreDeploy à la propriété Build Action du fichier de script. De la même façon, vous désignez un script de post-déploiement en affectant la valeur PostDeploy à la propriété Build Action du fichier de script. Si vous désignez un script comme script de prédéploiement ou de post-déploiement, puis que vous désignez un autre script de la même façon, la valeur Pas dans la build sera automatiquement définie pour l'action de génération du premier script. Ce comportement est dû au design car vous ne pouvez avoir qu'un seul script de prédéploiement et de post-déploiement pour chaque projet de base de données.

Important

Votre déploiement peut échouer si vous modifiez les noms ou caractéristiques des objets auxquels vos scripts de déploiement font référence mais que vous ne mettez pas à jour les références dans vos scripts. Par exemple, vous pouvez insérer des données dans une table dans votre script de post-déploiement. Si vous renommez la table mais ne mettez pas à jour le script, les instructions INSERT échoueront. Si vous renommez la table en utilisant la refactorisation de changement de nom, le script de déploiement sera mis à jour.

Insertion de plusieurs scripts dans l'étape de prédéploiement ou de post-déploiement

Pour utiliser plusieurs scripts dans l'étape de prédéploiement ou de post-déploiement, vous devez désigner un script de prédéploiement de niveau supérieur qui inclut d'autres scripts de prédéploiement ou de post-déploiement en utilisant l'instruction suivante :

SQLCMD :r .\NomFichier.sql

Scripts supplémentaires

Outre les scripts de déploiement, vous pouvez ajouter d'autres scripts à usage général à votre projet de base de données. Vous pouvez organiser ces scripts en créant des sous-dossiers sous le dossier Scripts de votre projet de base de données. Lorsque vous ouvrez chacun de ces scripts supplémentaires dans l'éditeur Transact-SQL, vous pouvez vous connecter à votre serveur de base de données et exécuter le script dans sa totalité ou partiellement. Si vous exécutez une routine qui audite les scripts, cette approche serait une façon pratique de garder chaque script avec la base de données qui lui est associée, et également de placer le script et la base de données sous le même système de contrôle de version que votre schéma de base de données. La valeur Pas dans la génération sera affectée à la propriété Build Action de ces scripts.

Tâches courantes

Dans le tableau suivant, vous pouvez trouver les descriptions des tâches courantes qui prennent en charge ce scénario, ainsi que des liens pointant vers des informations supplémentaires sur la façon dont vous pouvez mener à bien ces tâches.

Tâche

Contenu de support

Spécifier des scripts de prédéploiement ou de post-déploiement : vous pouvez ajouter des instructions Transact-SQL aux scripts qui s'exécutent avant ou après que votre base de données a été déployée. Lorsque vous importez des objets et des paramètres à partir d'une base de données, les scripts de déploiement peuvent être mis à jour avec les instructions qui ne sont pas représentées comme objets de base de données, tels que les autorisations, les définitions de rôle ou les signatures.

Spécifier les scripts de gestion ou utilitaires : vous pouvez ajouter des scripts de gestion et utilitaires à votre projet de base de données. Vous pouvez également mettre à jour vos scripts lorsque vous refactorisez des objets dans votre projet de base de données.

Archiver vos modifications : vous pouvez archiver vos scripts dans le contrôle de version pour les partager avec votre équipe. En plaçant vos scripts sous le contrôle de version, vous pouvez stocker et extraire les scripts de maintenance et de déploiement qui ont correspondu à une version antérieure de la base de données si vous devez entretenir cette version.

Résoudre les problèmes : vous pouvez en savoir plus sur la résolution des problèmes courants liés aux bases de données et aux projets serveur.

Scénarios associés

Voir aussi

Concepts

Écriture et modification du code d'une base de données

Renommer toutes les références à un objet de base de données

Générer et déployer des bases de données dans un environnement de développement isolé

Générer et déployer des bases de données dans un environnement de pré-production ou de production