Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 现在如何强制重新编译SQL Server 2005对象_Sql Server 2005_Stored Procedures_Recompile - Fatal编程技术网

Sql server 2005 现在如何强制重新编译SQL Server 2005对象

Sql server 2005 现在如何强制重新编译SQL Server 2005对象,sql-server-2005,stored-procedures,recompile,Sql Server 2005,Stored Procedures,Recompile,根据运行sp_recompile强制对象在下次运行时重新编译 我需要在运行sp recompile命令时重新编译它,主要是检查语法错误以及存储过程所依赖的对象是否存在 -- 在sql 2008上有sys.sp_refreshsqlmodule module…可能最简单的方法是重新部署存储过程,这将(据我所知)消除重新编译过程的需要 大致如下: SET @ProcedureName = 'SampleProcedure' CREATE TABLE #ProcedureContent (Text

根据运行
sp_recompile
强制对象在下次运行时重新编译

我需要在运行sp recompile命令时重新编译它,主要是检查语法错误以及存储过程所依赖的对象是否存在

--
在sql 2008上有sys.sp_refreshsqlmodule module…

可能最简单的方法是重新部署存储过程,这将(据我所知)消除重新编译过程的需要

大致如下:

SET @ProcedureName = 'SampleProcedure'

CREATE TABLE #ProcedureContent (Text NVARCHAR(MAX))
INSERT INTO #ProcedureContent
EXEC sp_helptext @ProcedureName

DECLARE @ProcedureText NVARCHAR(MAX)
SET @ProcedureText = ''

SELECT @ProcedureText = @ProcedureText + [Text] FROM #ProcedureContent 

EXEC ('DROP PROCEDURE ' + @ProcedureName);
EXEC (@ProcedureText)

DROP TABLE #ProcedureContent 

@opensas,我故意没有在这里这样做,这样脚本的核心就可以在没有外来“噪音”的情况下被看到,但是可以肯定的是,继续=)
sys.sp_refreshsqlmodule
也存在于SQLServer2005中。