自己的一个写法,大概思路是从sys.Objects里取得所有的存储过程,然后拼动态字符串来使用sp_recompile重新编译所有的SP。 SELECT ROW_NUMBER() OVER(ORDER BY name) AS RID,exec sp_recompile + name + AS TextINTO #TEMPFROM sys.objects WHERE TYPE = PDEC
自己的一个写法,大概思路是从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
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com