如何快速重新编译所有的存储过程
来源:程序员人生 发布时间:2014-11-11 08:53:11 阅读次数:3870次
自己的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
不知道还有无甚么更好的方法。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠