sp_recompile (Transact-SQL)

使存储过程和触发器在下次运行时重新编译。

主题链接图标Transact-SQL 语法约定

语法

sp_recompile [ @objname = ] 'object'

参数

[ @objname = ] 'object'

当前数据库中存储过程、触发器、表或视图的限定或未限定名称。object 的数据类型为 nvarchar(776),没有默认值。如果 object 是存储过程或触发器的名称,则该存储过程或触发器将在下次运行时重新编译。如果 object 是表或视图的名称,则所有引用该表或视图的存储过程都将在下次运行时重新编译。

返回代码值

0(成功)或非零数字(失败)

备注

sp_recompile 只在当前数据库中寻找对象。

存储过程和触发器所用的查询只在编译时进行优化。对数据库进行了索引或其他会影响数据库统计的更改后,已编译的存储过程和触发器可能会失去效率。通过对作用于表上的存储过程和触发器进行重新编译,可以重新优化查询。

ms181647.note(zh-cn,SQL.90).gif注意:
SQL Server 会在便利时自动对存储过程和触发器进行重新编译。

权限

需要具有对指定对象的 ALTER 权限。

示例

下面的示例使作用于 Customer 表上的存储过程在下次运行时重新编译。

USE AdventureWorks;
GO
EXEC sp_recompile N'Sales.Customer';
GO

请参阅

参考

CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
系统存储过程 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助