使存儲(chǔ)過程和觸發(fā)器在下次運(yùn)行時(shí)重新編譯。
sp_recompile [ @objname = ] 'object'
[@objname =] 'object'
是當(dāng)前數(shù)據(jù)庫中的存儲(chǔ)過程、觸發(fā)器、表或視圖的限定的或非限定的名稱。object 是 nvarchar(776) 類型,無默認(rèn)值。如果 object 是存儲(chǔ)過程或觸發(fā)器的名稱,那么該存儲(chǔ)過程或觸發(fā)器將在下次運(yùn)行時(shí)重新編譯。如果 object 是表或視圖的名稱,那么所有引用該表或視圖的存儲(chǔ)過程都將在下次運(yùn)行時(shí)重新編譯。
0(成功)或非零數(shù)字(失敗)
sp_recompile 只在當(dāng)前數(shù)據(jù)庫中尋找對象。
存儲(chǔ)過程和觸發(fā)器所用的查詢只在編譯時(shí)進(jìn)行優(yōu)化。對數(shù)據(jù)庫進(jìn)行了索引或其它會(huì)影響數(shù)據(jù)庫統(tǒng)計(jì)的更改后,已編譯的存儲(chǔ)過程和觸發(fā)器可能會(huì)失去效率。通過對作用于表上的存儲(chǔ)過程和觸發(fā)器進(jìn)行重新編譯,可以重新優(yōu)化查詢。
說明 Microsoft® SQL Server™ 會(huì)在便利時(shí)自動(dòng)對存儲(chǔ)過程和觸發(fā)器進(jìn)行重新編譯。
執(zhí)行權(quán)限默認(rèn)授予 public 角色。不是 sysadmin 固定服務(wù)器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員的用戶只能對自己的表進(jìn)行操作。
下例將導(dǎo)致使用 titles 表的觸發(fā)器和存儲(chǔ)過程在下次運(yùn)行時(shí)重新編譯。
EXEC sp_recompile titles
相關(guān)文章