在technet针对sp_recompile的文章中,以下备注部分声明
"sp_recompile只在当前数据库中查找对象.“
http://technet.microsoft.com/en-us/library/aa238892(v=sql.80).aspx
这是指它可以标记为重新编译的对象的函数的参数吗?
例如,如果数据库A中有一个由数据库B中的对象使用的表,那么数据库B中的对象会被标记为重新编译吗?
发布于 2014-03-05 17:15:55
首先,只会重新编译过程对象。触发器和存储过程,而不是整个表也知道触发器和SP只是被标记为重新编译,重新编译只会在下次调用它们时发生。
其次,它将只重新编译实际数据库中的对象,这意味着如果您处于DataBase_A的上下文中,并且试图重新编译DataBase_B.dob.SP_InAnotherDatabase,它将无法工作。
另外,它不需要“嵌套”重新编译状态。因此,如果您重新编译objectA并且它使用了一个objectB (在同一个或另一个DB中,没关系),那么objectB将不会被重新编译。
https://stackoverflow.com/questions/22200203
复制相似问题