sp_recompile会从其他数据库中标记对象以进行重新编译吗? (SQL Server)

时间:2014-03-05 14:12:20

标签: sql sql-server database

在sp_recompile的technet文章下面的备注部分说明了

sp_recompile仅在当前数据库中查找对象。

http://technet.microsoft.com/en-us/library/aa238892(v=sql.80).aspx

这是指它可以标记为重新编译的对象功能的参数吗?

例如,如果我在数据库B中有一个由数据库B中的对象使用的表,那么数据库B中的对象是否会被标记为重新编译?

1 个答案:

答案 0 :(得分:1)

首先请注意,只会重新编译过程对象。触发器和存储过程,而不是整个表也可以识别触发器,SP只是标记为重新编译,重新编译只会在下次调用时发生。

其次它只会重新编译实际数据库中的对象,如果你在DataBase_A的上下文中并尝试重新编译DataBase_B.dob.SP_InAnotherDatabase它将无效。

它也不会将状态“嵌套”重新编译。因此,如果您重新编译objectA并且它使用objectB(在相同或另一个DB中,无关紧要),那么objectB将不会被重新编译。