0

Gibt es eine Möglichkeit, nach der Wiederherstellung ersetzte Stored Procedure wiederherzustellen. Ich habe vergessen, eine Sicherung vor dem Ersetzen der Datenbank zu erstellen.Gespeicherte SQL-Ersetzungsprozedur

+0

Sorry, aber es scheint mir unwahrscheinlich, da Sie effektiv die gesamte Datenbank mit dem Inhalt der zuvor gespeicherten .bak-Datei überschreiben. Diese Art dreht die Uhr komplett zurück. – cars10m

+0

Danke cars10, Ich versuche zu überprüfen, ob es gecached oder etwas gibt, das ich verwenden kann, um die Skripts zu bekommen, die ich brauchte, aber nicht 100% Ich kann das Skript bekommen – jankenshin2004

+2

Nur wenn Sie das Skript irgendwo außerhalb der Datenbank gespeichert haben, oder wenn Sie können Wiederherstellen einer Datenbanksicherung, die vor der Änderung erstellt wurde. – dean

Antwort

-2

@RexAtienza, Wenn Sie diesen SP kürzlich ausgeführt haben, dann können Sie das aus dem Cache bekommen. Suchen Sie auch nach einem alten Backup Ihrer Datenbank, wo Sie Ihren alten SP erhalten können. Überprüfen Sie die folgende Abfrage, um aus dem Cache herauszufinden.

SELECT DB_Name(qt.[dbid]) AS 'databaseName' 
    ,Object_Name(qt.objectid, qt.[dbid]) AS 'procName' 
    ,Max(qs.last_execution_time) AS 'last_execution' 
    ,qt.TEXT 
FROM sys.dm_exec_query_stats AS qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt 
where Object_Name(qt.objectid, qt.[dbid]) ='YOUR_PROC_NAME' 
GROUP BY db_name(qt.[dbid]) 
    ,Object_Name(qt.objectid, qt.[dbid]) 
    ,qt.TEXT 
ORDER BY databaseName 
    ,procName 
+3

Falsch, "Wiederherstellen einer Datenbank löscht den Plan-Cache für die Instanz von SQL Server." https://msdn.microsoft.com/en-us/library/ms186858.aspx – dean

+0

@dean! Ich sage, mit anderen Namen wiederherstellen (nicht überschreiben) und diese gespeicherte Prozedur zu bekommen. Verwenden Sie etwas "gesunden Menschenverstand" –

+0

Ja, aber ich bezog mich auf den ersten Teil Ihrer Antwort ("Wenn Sie diesen SP kürzlich ausgeführt haben, dann können Sie das aus dem Cache bekommen"). Das OP hat die Datenbank bereits ersetzt - also nicht mehr im Cache. – dean

1

Nein, gibt es nicht. Dies ist ein gutes Beispiel dafür, warum ich die Quellcodeverwaltung für Datenbankobjekte und kompilierten Code befürworte.

+1

Es ist völlig unverantwortlich, nicht den gesamten Datenbankcode in Source Control zu setzen. – HLGEM