Déploiement Xcopy (SQL Server Express)

Microsoft SQL Server 2005 Express Edition (SQL Server Express) prend en charge le déploiement Xcopy de votre application et de la base de données SQL Server Express et simplifie considérablement la distribution des applications qui utilisent les bases de données SQL Server Express.

Qu'est-ce que le déploiement Xcopy ?

Le déploiement Xcopy vous permet de copier votre application et le fichier de base de données (.mdf) sur un autre ordinateur, ou dans un emplacement différent sur le même ordinateur, sans qu'une configuration supplémentaire soit nécessaire. SQL Server Express doit être déjà installé sur l'ordinateur cible et avoir une instance en cours d'exécution pour utiliser le déploiement Xcopy. Pour plus d'informations sur les instances, consultez Utilisation des instances nommées.

Avec Xcopy, lorsque vous distribuez votre application aux utilisateurs, vous pouvez envoyer uniquement les fichiers .exe et .mdf. Chaque utilisateur peut placer ces fichiers dans un dossier et double-cliquer sur le fichier .exe pour commencer à utiliser l'application.

Comment fonctionne le déploiement Xcopy ?

SQL Server Express peut attacher automatiquement un fichier .mdf à une instance en cours d'exécution de SQL Server Express lorsqu'une application établit une connexion pour la première fois. Lorsque l'utilisateur ferme ou quitte l'application, SQL Server Express détache le fichier .mdf de l'instance. Cette fonctionnalité fait de .mdf un fichier totalement transférable : vous pouvez le copier et le déplacer, et exécuter simultanément plusieurs copies du fichier sur la même instance.

Attribution de nom de base de données logique

Lorsque SQL Server Express attache une base de données, un nom logique est attribué automatiquement à la base de données sauf si la chaîne de connexion dans votre application spécifie un nom logique. Ce nom logique doit être unique. SQL Server Express utilise la lettre de lecteur, le nom du répertoire et le nom de fichier de la base de données comme nom logique. Par exemple, si votre fichier .mdf se trouve dans le chemin d'accès C:\Program Files\My Application\Data\MainData.mdf, SQL Server Express attribue un nom de base de données logique qui correspond exactement au chemin d'accès :C:\Program Files\My Application\Data\MainData.mdf.

ms165716.note(fr-fr,SQL.90).gifRemarque :
Si la longueur du chemin d'accès et du nom de fichier dépasse 127 caractères, le nom de la base de données logique est raccourci et préfixé à l'aide d'un GUID, ce qui garantit un nom logique unique.

Attribution de nom et création de fichier journal

Lorsque vous déployez votre application, vous devez effectuer un Xcopy des fichiers d'application et du fichier .mdf uniquement. Vous ne devez pas inclure le fichier journal (.ldf). SQL Server Express crée automatiquement un nouveau fichier journal lorsqu'il attache la base de données. SQL Server Express nomme le fichier journal nom_base_de_données_log.ldf. Si un fichier du même nom existe déjà dans le même répertoire que le fichier .mdf, le fichier existant est utilisé.

Limitations liées à l'utilisation du déploiement Xcopy

Lorsque vous utilisez le déploiement Xcopy avec votre application, certaines fonctionnalités SQL Server Express peuvent ne pas fonctionner comme prévu. La liste suivante décrit les limitations possibles :

  • Tout code Transact-SQL qui contient des noms de base de données logiques ne fonctionnera pas.
    Étant donné que le nom logique de la base de données dépend de l'emplacement du fichier, qui varie à chaque Xcopy, tout code qui spécifie un nom de base de données logique échoue.
  • Les scénarios de réplication ne fonctionnent pas.
    La réplication nécessite un nom de base de données logique permanent. Si votre application utilise la réplication, vous ne devez pas utiliser le déploiement Xcopy.

Déploiement Xcopy pour des administrateurs sur une instance SQL Server Express

Pour que votre application fonctionne avec la fonctionnalité de déploiement Xcopy de SQL Server Express, vous devez vous assurer que la chaîne de connexion que vous utilisez dans votre application contient les paramètres appropriés :

  • Utilisez le paramètre data source, mais remplacez le nom d'ordinateur par un point (.) ou (local). Vous devez également spécifier le nom de l'instance, sauf si vous êtes certain que SQL Server Express sera toujours installé sur une instance sans nom. Pour plus d'informations sur les instances nommées ou sans nom, consultez Utilisation des instances nommées.
  • Utilisez le paramètre initial catalog or database, mais n'affectez pas de valeur au paramètre.
  • Ajoutez le paramètre AttachDBFileName et attribuez-lui le nom et le chemin d'accès du fichier .mdf. Attachdbfilename est une option de chaîne de connexion SqlClient qui permet l'attachement des bases de données au moment de l'exécution et crée automatiquement le nom de la base de données. Le mot clé DataDirectory vous permet de spécifier le chemin d'accès relatif à un fichier de base de données. Attachdbfilename améliore aussi la portabilité de la base de données. Pour plus d'informations sur Attachdbfilename, consultez la documentation de Visual Studio 2005.

La chaîne de connexion suivante attache le fichier de base de données MyDb.mdf (situé dans le même dossier que l'application exécutable) à l'instance SQL Server Express en cours d'exécution sur l'ordinateur local.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

Déploiement Xcopy pour des non-administrateurs sur une instance SQL Server Express

Outre tous les paramètres spécifiés dans la chaîne de connexion pour le déploiement Xcopy pour les administrateurs sur une instance, vous devez spécifier le paramètre user instance pour déployer une application pour les utilisateurs qui n'ont pas de privilèges administratifs sur l'instance de SQL Server Express. Pour plus d'informations sur les instances d'utilisateur, consultez Instances d'utilisateur pour les non administrateurs.

Voir aussi

Autres ressources

Distribution de SQL Server Express

Aide et Informations

Assistance sur SQL Server 2005