Déploiement Xcopy (SQL Server Express)

Xcopy est une méthode simplifiée pour déployer vos applications et bases de données SQL Server Express. Le déploiement Xcopy vous permet de copier une nouvelle application (.exe) et le fichier de base de données (.mdf) vers un autre ordinateur ou vers un autre emplacement sur le même ordinateur. Aucune configuration supplémentaire n'est requise.

Pour distribuer l'application aux utilisateurs, vous envoyez simplement les fichiers .exe et .mdf. Chaque utilisateur peut enregistrer localement les fichiers et simplement double-cliquer sur le fichier .exe pour démarrer l'application. Si votre application utilise la réplication, vous ne devez pas utiliser le déploiement Xcopy.

Pour utiliser le déploiement Xcopy, SQL Server Express doit être installé sur l'ordinateur cible et doit avoir une instance en cours d'exécution. Pour plus d'informations, consultez Instances d'utilisateur pour les non-administrateurs.

Comment faire pour utiliser le déploiement Xcopy ?

Lorsqu'une application établit pour la première fois une connexion à partir d'une instance en cours d'exécution de SQL Server Express, SQL Server Express attachera automatiquement un fichier .mdf. Lorsque l'utilisateur ferme l'application, SQL Server Express détache le fichier .mdf de l'instance. La fonctionnalité Xcopy rend le fichier .mdf totalement portable. Vous pouvez copier et déplacer le fichier tout en exécutant 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.

Notes

Si la longueur du chemin d'accès complet et du nom de fichier dépasse 127 caractères, le nom de base de données logique est raccourci et précédé d'un GUID comme préfixe. Cela garantit l'unicité du nom logique.

Attribution de nom et création de fichier journal

Lorsque vous déployez votre application, vous devez inclure dans le déploiement Xcopy seulement les fichiers d'application et le fichier .mdf. Vous ne devez pas inclure le fichier journal (.ldf). SQL Server Express créera automatiquement un nouveau fichier journal lorsqu'il joindra la base de données. SQL Server Express nommera le fichier journal nom_base_données_log.ldf. Si un fichier du même nom existe déjà dans le répertoire contenant le fichier .mdf, le fichier existant est utilisé.

Limitations lors de 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 ci-dessous 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.

  • 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 génère automatiquement le nom de la base de données. Le mot clé DataDirectory vous permet de spécifier le chemin d'accès relatif d'un fichier de base de données. Attachdbfilenameamé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 de SQL Server Express

Pour déployer une application pour les utilisateurs qui n'ont pas de droits d'utilisateur administrateur sur l'instance de SQL Server Express, vous devez spécifier les éléments suivants :

  • les paramètres dans la chaîne de connexion pour le déploiement Xcopy ;

  • le paramètre user instance.

Pour plus d'informations, consultez Instances d'utilisateur pour les non-administrateurs.

Voir aussi

Autres ressources