如何快速重新编译所有的存储过程
2014-10-31 17:54
253 查看
自己的一个写法,大概思路是从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
不知道还有没有什么更好的方法。
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
不知道还有没有什么更好的方法。
相关文章推荐
- [SQL Server]如何快速查找使用了某个字段的所有存储过程?
- [SQL Server]如何快速查找使用了某个字段的所有存储过程
- 如何快速查找使用了某个字段的所有存储过程
- SQL Server 如何在运行时重编译存储过程
- 如何对所有存储过程进行一次性的加密?(来自CSDN)
- SQL Server 重新编译存储过程的方式有三种
- SQL : 如何完全复制一个服务器上的数据库A到另一个服务器上的数据库B(包括库A的所有表、试图、存储过程等等)
- 如何快速导出SYBASE的存储过程
- Oracle中重新编译无效的存储过程, 或函数、触发器等对象
- SQL语句快速查询存在某个值的所有存储过程
- 如何快速查找某个存储过程执行的状况(转)
- 如何快速查找某个存储过程执行的状况
- 【原】SQL存储过程调用慢,但是重新编译一下存储过程就很快
- SQLServer 2005中如何列所有存储过程
- oracle 存储过程重新编译方法
- sqlserver快速查找所有存储过程中是否包含某字符
- 存储过程重新编译
- SQL Server 如何在运行时重编译存储过程
- SQL - 如何查询某个存储过程的的所有参数:
- 如何快速查找某张表在哪些存储过程中被使用