web-dev-qa-db-fra.com

Est-il possible d'accéder à une base de données .mdf sans SQL Server?

J'ai créé un .mdf fichier par SQL Server et le placer dans un fichier local. J'exécute mon programme sur un ordinateur sur lequel aucun serveur SQL n'est installé. Et j'ai aussi utilisé des classes du System.Data.SqlClient espace de noms (c'est-à-dire SqlConnection ..)

Je souhaite établir une connexion d'accès avec .mdf fichier créé par SQL Server? C'est possible ?

18
unbalanced

Je ne pense pas qu'il soit possible d'interagir avec un fichier MDF sans passer par un moteur SQL Server. Vous installeriez très probablement SQL Server Express (qui devrait être une option si vous choisissez d'y aller). via l'ajout/suppression de programmes pour Visual Studio, ou vous pouvez téléchargez-le séparément d'ici - c'est l'option 2008 R2 avec outils ), attachez votre base de données, puis connectez-vous à ce moteur à partir de votre programme.

De nombreux didacticiels en ligne vous suggèrent d'utiliser le User Instances fonction et AttachDbFileName. Je vous suggère de ne pas emprunter cette voie car cela conduit souvent à la confusion - de très nombreux utilisateurs se connectent à une instance de la base de données via Management Studio, un instance différente de leur programme, puis ne comprends pas pourquoi l'un ne voit pas les mises à jour effectuées par l'autre. Le User Instances les fonctionnalités sont obsolètes et je préfère fortement attacher correctement une base de données à l'instance.

Dans SQL Server 2012, vous pouvez télécharger le nouveau runtime SqlLocalDb ( vous voulez le fichier SqlLocalDB.MSI x86 ou x64 d'ici ), ce qui rend ce processus beaucoup plus facile, car il est un moteur SQL Server à la demande sans maintenance. Cependant, notez que votre base de données sera mise à niveau vers le nouveau format de fichier 11.0, ce qui signifie que vous ne pourrez pas détacher/attacher ou sauvegarder/restaurer vers une version plus ancienne (2008, 2008 R2, etc.). J'ai ajouté de nombreuses techniques de dépannage pour les nouveaux utilisateurs commençant par SqlLocalDb ici .

21
Aaron Bertrand

Vous pouvez essayer d'utiliser OrcaMDF qui est un projet open-source.

Qu'est-ce que OrcaMDF?

Un analyseur C # pour les fichiers MDF. Vous permet de lire des tables, des métadonnées et des index à partir de fichiers MDF sans qu'il soit attaché à une instance SQL Server en cours d'exécution).

(cette description est tirée de la page du projet).

Blog de l'auteur

6
Bogdan Sahlean

Vous avez besoin de SQL pour vous connecter au MDF. Vous pouvez le convertir en SDF et charger l'édition compacte (gratuite). http://msdn.Microsoft.com/en-us/data/ff687142

2
tzerb