Das ist mein Problem, ich habe eine Wiederherstellungsfunktion in C #, die von diesen Antworten geleitet wird:
SMO: Wiederherstellung in einer anderen DB
Aber wenn das Programm versucht, diesen Code db.SetOnline();
auszuführen, wird eine Ausnahme ausgelöst: Object reference not set to an instance of an object.
. Das Problem ist ... db-Objekt ist null. Aber warum ist das DB-Objekt NULL?
Das ist meine Funktion:
%Vor%Ich habe dieses Problem beim Wiederherstellen einer Datenbank mit dem Assistenten zum Wiederherstellen von SQL Server-Datenbanken festgestellt. Dies geschieht, wenn die Zielversion von SQL Server niedriger als die Quellversion von SQL Server ist. Vielleicht werden Sie versuchen, die Datenbanksicherung von SQL Server 2012 in eine ältere Version wie 2008R2 wiederherzustellen. Bitte bestätigen Sie, dass die Zielversion der Quelldatenbank entspricht oder höher ist.
Ich denke, dass der Prozess des DB Resores asynchron ist. Wenn Sie also versuchen, DB direkt nach der Wiederherstellung zu erhalten, kann db im mittleren Wiederherstellungsstatus sein und nicht über SMO verfügbar sein. Sie sollten also versuchen zu warten / zu ziehen, während db in SQL-Server erstellt / resotrot wird und über SMO verfügbar ist. Zum Beispiel können Sie folgenden Code anstelle von db = srvr.Databases [baseDatosDestino] hinzufügen:
%Vor%Tags und Links sql-server c# smo