sp_recompile (języka Transact-SQL)

Powoduje, że procedury przechowywane i wyzwalacze jest ponownie kompilowana przy następnym czas są one uruchamiane.

Topic link iconKonwencje składni języka Transact-SQL

sp_recompile [ @objname = ] 'object'

Argumenty

  • [ @objname = ] 'object'
    Is the qualified or unqualified name of a stored procedure, trigger, table, or view in the current database.object is nvarchar(776), with no default.Jeśli object jest to nazwa procedura przechowywana lub wyzwalacza, procedura przechowywana lub wyzwalacz będzie ponownie kompilowana przy następnym czas on uruchomiony. Jeśli object jest nazwa tabela lub widoku wszystkich procedur przechowywanych, które odwołują się do tabela lub widoku będzie ponownie kompilowana przy następnym czas są one uruchamiane.

Wartości kodów powrotnych

0 (sukces) lub liczbę różną od zera (błąd)

Remarks

sp_recompile szuka obiektu w bieżącej bazie danych tylko.

Kwerend, procedur przechowywanych i wyzwalaczy są zoptymalizowane tylko wtedy, gdy są one skompilowane.Indeksy lub inne zmiany wpływające na statystyki są wprowadzane do bazy danych, skompilowane procedur przechowywanych i wyzwalaczy może dojść do utraty wydajności.Przy ponownej kompilacji procedur przechowywanych i wyzwalaczy, które działają w tabela, może być reoptimize kwerendy.

Uwaga

SQL Server automatycznie rekompiluje procedury przechowywane i wyzwalacze podczas lepiej jest to zrobić.

Uprawnienia

Wymaga ALTER uprawnienia dla określonego obiektu.

Przykłady

Poniższy przykład powoduje, że procedury przechowywane, które działają w Customer Tabela jest ponownie kompilowana przy następnym czas są one uruchamiane.

USE AdventureWorks;
GO
EXEC sp_recompile N'Sales.Customer';
GO