首页 > 代码库 > 如何快速重新编译所有的存储过程
如何快速重新编译所有的存储过程
自己的一个写法,大概思路是从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
不知道还有没有什么更好的方法。
如何快速重新编译所有的存储过程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。