程序员人生 网站导航

如何快速重新编译所有的存储过程

栏目:互联网时间:2014-11-11 08:53:11

自己的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

不知道还有无甚么更好的方法。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐