2017-02-23 5 views
0

Ich habe einen localdatabase „office.mdf“ ich meine Bewerbung wollen die Datenbank in der Lage sein zu exportieren und wieder importieren Ich habe versucht, das Backup mit Hilfe von AbfrageImport und Export von Daten MDF- Sqlserver

DB.ExecuteNonQuery(@"BACKUP DATABASE [" + Directory.GetCurrentDirectory() + @"\office.mdf] TO DISK = N'" + distination + "'"); 

zu erreichen und wiederherstellen Abfrage

DB.ExecuteNonQuery(@"USE [master]; RESTORE DATABASE [" + Directory.GetCurrentDirectory() + @"\office.mdf] " + 
     @"FROM DISK = N'" + source + "' WITH FILE = 1 , NOUNLOAD, REPLACE, STATS = 10 , NORECOVERY , " + 
     @" MOVE 'office_log' TO '" + Directory.GetCurrentDirectory() + @"\office_log.ldf'" + 
     @" MOVE 'office' TO '" + Directory.GetCurrentDirectory() + @"\office.mdf'"); 

ich mein Projekt bauen und ich laufe es auf einem anderen Gerät dann exportiere ich die Datenbank, ich die Datenbank erfolgreich importiert, aber danach konnte ich nicht mit der Datenbank verbinden mehr und ich bekam Nachricht, die sagt:

Login failed for user "myuser" 

so das erste, was, wie kann ich dieses Problem lösen und danach, was ist der beste Ansatz, die Datenbank zu exportieren und wieder von einem anderen Gerät importieren, wie kann ich die vorhandene Datenbank mit dem exportierten zusammenführen, wenn (So verliere ich nicht die vorhandenen Daten)

+0

Um den Login-Fehler zu beheben, verwenden Sie 'sp_change_users_login'. http://stackoverflow.com/questions/15944123/sql-server-back-restore-login-failed –

+0

danke, aber es hat nicht funktioniert –

Antwort

1

In SQL Server werden Logins auf Instanzebene in der master-Datenbank gespeichert, während Benutzer in jeder Benutzerdatenbank gespeichert und einem Login zugeordnet werden.

Es klingt wie die Anmeldung, die Sie versuchen, auf die Datenbank zuzugreifen, existiert nicht auf Zielserver oder die SIDs stimmen nicht überein (was normalerweise mit sp_change_users_login korrigiert werden würde).

Eine Option wäre, CREATE LOGIN ... WIT SID zu verwenden und dieselbe SID auf allen Servern zu verwenden, auf denen Sie diese Datenbank wiederherstellen.

+0

Ich glaube, ich suchte auf SID, um dieses Problem zu vermeiden, danke vielmals –

+0

tat dies beantworte deine Frage? –

+0

es ist nützlich, aber leider nicht, weil das Hauptproblem ist, dass ich Daten zwischen Datenbanken exportieren und importieren möchte, danke trotzdem –