Es ist mir NOCH nicht passiert. Aber ich habe darüber nachgedacht.
Ich habe mit meiner Trainingsumgebung herumgespielt und versehentlich auf den Datenbanknamen geklickt und dann den Buchstaben A berührt.
Nehmen wir an, ich drücke die Eingabetaste. Jetzt heißt die Datenbank A und ich erinnere mich nicht an den ursprünglichen Namen. STRG + Z funktioniert nicht.
Was ist in einem solchen Fall in einer Produktionsumgebung zu tun?
Ich weiß, dass dies nicht passieren kann, da die Datenbank nicht als SINGLE USER festgelegt ist. Aber wenn es passiert. Was ist zu tun? Nehmen wir an, es handelt sich um eine Datenbank, die derzeit niemand verwendet.
sql-server
sql-server-2008
Racer SQL
quelle
quelle
ALTER DATABASE
Berechtigungen und würde mich nur dann als dieser Benutzer anmelden, wenn ich tatsächlich einALTER DATABASE
Skript ausführen möchte . Auf diese Weise werden Sie nie das oben genannte tunAntworten:
Klicken Sie mit der rechten Maustaste auf die Datenbank und gehen Sie zu Dateien. Sie können die ursprünglichen Dateinamen sehen. Auf diese Weise können Sie den richtigen Datenbanknamen leicht finden. Die Dateinamen werden bei einer Umbenennung nicht geändert.
Sie können auch versuchen, einen Blick auf Ihre
fn_dblog
. Es ist nicht dokumentiert, aber Sie können die neuesten Aktionen anzeigen (und filtern).quelle
SELECT CAST([RowLog Contents 0] AS sysname) ,CAST([RowLog Contents 1] AS sysname) FROM sys.fn_dblog(NULL,NULL) WHERE Context = 'LCX_BOOT_PAGE' AND [Offset in Row] =52
Ich bezweifle, dass Sie eine Datenbank in Produktion haben würden, deren Namen Sie nicht kennen oder die Sie nicht irgendwo dokumentiert haben.
Wenn dies in der Produktion der Fall ist, können Sie die Liste der vorhandenen Sicherungen mit nachschlagen
Oder verwenden Sie
dbo.backupset
von msdb.quelle
Sie können die SQL Server-Protokolle zum letzten Start von SQL Server anzeigen und nach jeder Instanz von 'Datenbank starten' DBName 'suchen. Sie können diese Liste dann mit den Ergebnissen von sys.databases vergleichen. Alle neuen und von Ihnen geänderten Datenbanken werden nicht in die SQL Server-Protokollliste aufgenommen.
Eine andere, vielleicht bessere Möglichkeit wäre, den Standard-Trace abzufragen und nach der :: fn_trace_gettable database_id zu filtern. Unter der Annahme, dass kürzlich eine Datenbank verwendet wurde, wird in der Spalte databaseName der alte Name und in einer neueren Zeile der neue Name mit dem Ereignistyp Object: Altered angezeigt.
quelle