如何快速重新編譯所有的存儲過程
來源:程序員人生 發布時間:2014-11-11 08:53:11 閱讀次數:4001次
自己的1個寫法,大概思路是從sys.Objects里獲得所有的存儲進程,然后拼動態字符串來使用sp_recompile重新編譯所有的SP。
SELECT ROW_NUMBER() OVER(ORDER BY name) AS RID,'exec sp_recompile ''' + name +'''' AS Text
INTO #TEMP
FROM sys.objects WHERE TYPE = 'P'
DECLARE @MaxID INT
DECLARE @SQL VARCHAR(MAX)
SELECT @MaxID = MAX(RID) FROM #TEMP
WHILE (@MaxID IS NOT NULL)
BEGIN
SELECT @SQL = Text
FROM #TEMP
WHERE RID = @MaxID
--PRINT @SQL
EXEC (@SQL)
SELECT @MaxID = MAX(RID) FROM #TEMP WHERE RID < @MaxID
END
不知道還有無甚么更好的方法。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈