0

Existe-t-il un moyen de récupérer la procédure stockée remplacée après la restauration? J'ai oublié de créer une sauvegarde avant de remplacer la base de données.Procédure stockée remplacée SQL

+0

Désolé, mais il me semble peu probable puisque vous écrasez effectivement toute la base de données avec le contenu du fichier .bak précédemment enregistré. Ce genre de retour à l'horloge complètement. – cars10m

+0

Merci cars10, j'essaie de vérifier s'il y a un cache ou quelque chose que je peux utiliser pour obtenir les scripts dont j'ai besoin mais pas 100% Je peux obtenir le script – jankenshin2004

+2

Seulement si vous avez le script stocké quelque part en dehors de la base de données restaurer une sauvegarde de base de données créée avant la modification. – dean

Répondre

-2

@RexAtienza, Si vous avez récemment exécuté ce SP, vous pouvez l'obtenir du cache. Recherchez également toute ancienne sauvegarde de votre base de données où vous pouvez obtenir votre ancien SP. Vérifiez la requête ci-dessous pour savoir à partir du cache.

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

Incorrect, "La restauration d'une base de données efface le cache de plan pour l'instance de SQL Server." https://msdn.microsoft.com/en-us/library/ms186858.aspx – dean

+0

@dean! Je dis à restaurer avec un nom différent (pas écraser) et obtenir cette procédure stockée. utiliser un peu de "bon sens" –

+0

Oui, mais je me référais à la première partie de votre réponse ("Si vous avez récemment exécuté ce SP alors vous pouvez l'obtenir du cache"). L'OP a déjà remplacé la base de données - donc, ce n'est plus dans le cache. – dean

1

Non, il n'y en a pas. C'est un bon exemple de pourquoi je préconise le contrôle de la source pour les objets de base de données ainsi que le code compilé.

+1

Il est tout à fait irresponsable de ne pas mettre tout le code de base de données dans le contrôle de la source. – HLGEM