Partager via


Vue d'ensemble des scripts de base de données

Mise à jour : novembre 2007

Les scripts de base de données sont des fichiers supplémentaires contenant des instructions ou des utilitaires Transact-SQL (T-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). Il peut également s'agir de scripts de gestion générale que vous stockez dans le projet de base de données.

Pendant une opération de refactorisation de base de données sur un objet de schéma, vous pouvez mettre automatiquement à jour tout script contenant un objet de base de données que vous renommez dans le cadre de cette opération.

Le dossier Scripts prend en charge les actions suivantes :

  • Ajouter un nouvel élément

  • Ajouter un dossier

  • Ajouter un script

  • Exclure du projet

  • Actions de contrôle de version (tel que l'archivage, l'extraction, etc.)

  • Couper

  • Copy

  • Delete

  • Rename

  • Properties

Les scripts qui sont contenus dans le dossier Scripts prennent en charge les actions suivantes :

  • Ouvrir

  • Ouvrir avec

  • Exclure du projet

  • Actions de contrôle de version (tel que l'archivage, l'extraction, etc.)

  • Couper

  • Copy

  • Delete

  • Rename

  • Properties

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 fusionnés dans un script de compilation. 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 inclure d'autres scripts depuis le script de prédéploiement et le script de post-déploiement. Les scripts supplémentaires sont inclus à l'aide de code SQLCMD. (Consultez la section connexe, plus loin dans cette rubrique.) Lorsque vous générez le projet de base de données, tous les scripts inclus sont fusionnés dans le script de compilation.

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. Lorsque vous désignez un script comme script de prédéploiement ou de post-déploiement, si un autre script a été précédemment désigné avec cette action de génération, la valeur Pas dans la génération sera automatiquement définie pour l'action de génération de l'autre 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.

Lorsque vous importez un schéma de base de données, la plupart des informations de schéma sont importées dans les définitions d'objet de base de données se trouvant dans le projet de base de données. Certaines informations (telles que les connexions, les autorisations, les règles et les valeurs par défaut) sont, en revanche, importées dans des scripts de prédéploiement ou de post-déploiement supplémentaires. Lorsque cette opération se produit, des fichiers supplémentaires sont créés dans le sous-dossier Avant le déploiement ou Après le déploiement situé dans le dossier Scripts du projet de base de données. Ces fichiers de script supplémentaires sont inclus dans les scripts de prédéploiement et de post-déploiement, selon le cas. La valeur Pas dans la génération est affectée à la propriété Build Action des scripts inclus parce qu'ils ne sont pas directement inclus dans la génération. Au lieu de cela, ils sont inclus indirectement par le biais du script de prédéploiement ou de post-déploiement. Toute instruction de script non reconnue est placée dans le fichier ScriptsIgnoredOnImport.sql stocké dans le dossier Scripts.

Remarque importante :

Si vos scripts de déploiement référencent des objets de base de données dont les noms ou caractéristiques changent ultérieurement, vous devez modifier manuellement les scripts de déploiement, sans quoi le déploiement risque d'échouer. Par exemple, si vous avez des règles et des valeurs par défaut qui sont liées à une table que vous renommez, le script de déploiement n'est pas mis à jour, et la liaison échouera si vous ne modifiez pas le script. Si vous renommez la table en utilisant la refactorisation de changement de nom, le script de déploiement sera mis à jour dans le cadre de l'opération de refactorisation.

Importation de schémas de base de données et de scripts de prédéploiement

Le fichier script.predeployment.sql est, par défaut, le script de prédéploiement principal. Ce script est créé automatiquement sous la forme d'un fichier vide lorsque vous créez un projet de base de données. Lorsque vous importez un schéma de base de données, des scripts supplémentaires peuvent être créés automatiquement dans le même dossier que votre script de prédéploiement. Si des scripts supplémentaires sont créés, des instructions sont ajoutées au fichier script.predeployment.sql pour inclure les scripts supplémentaires. Vous pouvez désigner un autre fichier comme votre script de prédéploiement en affectant la valeur PreDeploy à sa propriété Build Action.

Remarque :

Vous ne pouvez avoir qu'un seul script de prédéploiement avec la valeur PreDeploy affectée à la propriété Build Action. Pour utiliser plusieurs scripts dans l'étape de pré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 en utilisant l'instruction suivante : SQLCMD :r.\NomFichier.sql.

Remarque importante :

Vous devez modifier manuellement le script de prédéploiement pour créer tous les objets dans lesquels il n'est pas possible d'importer suffisamment d'informations pour recréer ces objets pendant une opération d'importation de schéma. Par exemple, vous devez modifier le script pour créer des clés de chiffrement et des certificats.

Les fichiers de script présentés dans le tableau suivant sont générés lorsque vous importez un schéma de base de données :

Nom du fichier

Ordre d'inclusion

Remarques

Logins.sql

Premièrement

Ce script contient des définitions pour toutes les connexions Microsoft SQL Server qui ont été définies dans la base de données source. Les connexions sont écrites à l'aide de CREATE LOGIN dans Microsoft SQL Server 2005 et à l'aide de sp_addlogin dans SQL Server 2000.

LinkedServers.sql

Second

Ce script contient des instructions permettant de créer des serveurs liés. (Pour plus d'informations, consultez « Liaison des serveurs » sur le site Web Microsoft.) Lorsque vous importez le schéma de base de données, une instruction sp_addlinkedserver est ajoutée au script pour chaque serveur lié dans la base de données source.

CustomErrors.sql

Troisième

Ce script contient des messages d'erreur définis par l'utilisateur. Lorsque vous importez le schéma de base de données, une instruction sp_addmessage est ajoutée au script pour chaque message d'erreur personnalisé qui est défini dans la base de données source.

EncryptionKeysAndCertificates.sql

Quatrième

Ce script contient des espaces réservés pour chaque instruction CREATE SYMMETRIC KEY, CREATE ASYMMETRIC KEY, CREATE MASTER KEY et CREATE CERTIFICATE dans la base de données source.

Remarque :

Ce script est utilisé uniquement sur SQL Server 2005.

Importation de schémas de base de données et de scripts de post-déploiement

Le fichier script.postdeployment.sql est, par défaut, le script de post-déploiement principal. Ce script est créé automatiquement sous la forme d'un fichier vide lorsque vous créez un projet de base de données. Lorsque vous importez un schéma de base de données, des scripts supplémentaires peuvent être créés. Si des scripts supplémentaires sont créés, des instructions sont ajoutées au fichier script.postdeployment.sql pour inclure les scripts supplémentaires. Vous pouvez désigner un autre fichier comme votre script de post-déploiement en affectant la valeur PostDeploy à sa propriété Build Action.

Remarque :

Vous ne pouvez avoir qu'un seul script de post-déploiement avec la valeur PostDeploy affectée à la propriété Build Action. Pour utiliser plusieurs scripts dans l'étape de post-déploiement, vous devez créer un script de post-déploiement de niveau supérieur qui inclut d'autres scripts de post-déploiement en utilisant l'instruction suivante : SQLCMD :r.\NomFichier.sql.

Remarque importante :

Vous devrez peut-être modifier manuellement les scripts de post-déploiement pour créer ou mettre à jour tous les objets dans lesquels il n'est pas possible d'importer suffisamment d'informations pour recréer ou modifier ces objets pendant une opération d'importation de schéma. L'association d'utilisateurs à des rôles est un exemple de cette situation.

Les fichiers de script présentés dans le tableau suivant sont générés lorsque vous importez un schéma de base de données :

Nom du fichier

Ordre

Remarques

Storage.sql

Premièrement

Ce script contient des définitions qui sont liées à des objets de stockage tels que des fichiers et des groupes de fichiers.

Permissions.sql

Second

Ce script contient toute autorisation GRANT, REVOKE ou DENY pour la base de données cible. Lorsque vous importez un schéma de base de données, des instructions sont ajoutées à Permissions.sql pour toutes les autorisations qui sont spécifiées dans la base de données source.

RoleMemberships.sql

Troisième

Ce script contient toutes les instructions sp_addrolemember qui sont requises pour associer des utilisateurs à des rôles.

RulesAndDefaults.sql

Quatrième

Ce script contient des instructions supplémentaires permettant de définir des règles et des valeurs par défaut pour la base de données cible. Lorsque vous importez un schéma de base de données, des instructions supplémentaires sont ajoutées au script RulesAndDefaults pour lier des règles et des valeurs par défaut aux colonnes ou aux types de données alias, et pour ajouter des comptes de sécurité en tant que membre d'un rôle de base de données SQL Server existant dans la base de données. Consultez le tableau suivant pour connaître les instructions qui seront ajoutées au script.

DatabaseObjectOptions.sql

Cinquième

Ce script contient des options qui sont appliquées à des objets de base de données une fois le déploiement terminé.

Signatures.sql

Sixième

Ce script contient toutes les définitions de signature pour la base de données cible. Lorsque vous importez un schéma de base de données, des instructions supplémentaires sont ajoutées au script Signatures.sql pour chaque signature qui est définie dans la base de données source.

Remarque Ce script est utilisé uniquement sur SQL Server 2005.

Des règles, des valeurs par défaut et des comptes de sécurité sont ajoutés en utilisant les éléments suivants :

Pour

SQL Server 2005

SQL Server 2000

Lier une règle à une colonne ou à un type de données alias

ALTER TABLENomTableADD CONSTRAINTNomContrainteCHECK

sp_bindrule

Lier une valeur par défaut à une colonne ou à un type de données alias

ALTER TABLENomTableADD CONSTRAINTNomContrainteDEFAULT

sp_binddefault

Ajouter un compte de sécurité en tant que membre d'un rôle de base de données SQL Server existant

sp_addrolemember

sp_addrolemember

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 ajouter des sous-dossiers au dossier Scripts de votre projet de base de données afin de mieux organiser ces scripts supplémentaires. Lorsque vous ouvrez chacun de ces scripts supplémentaires dans l'éditeur T-SQL, vous pouvez vous connecter à votre serveur de base de données et exécuter le script dans sa totalité ou partiellement. Si vous avez, par exemple, une routine qui audite les scripts que vous exécutez, 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 les placer 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.

Voir aussi

Tâches

Comment : spécifier des scripts de prédéploiement ou de post-déploiement

Comment : ajouter des scripts de gestion à un projet de base de données

Concepts

Vue d'ensemble de la génération et du déploiement d'une base de données

Vue d'ensemble de la terminologie de Database Edition

Autres ressources

Gestion des connexions de base de données dans l'éditeur Transact-SQL

Analyse et exécution d'un script dans l'éditeur Transact-SQL