Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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
sp_会重新编译来自其他数据库的标记对象以进行重新编译吗?(SQL Server)_Sql_Sql Server_Database - Fatal编程技术网

sp_会重新编译来自其他数据库的标记对象以进行重新编译吗?(SQL Server)

sp_会重新编译来自其他数据库的标记对象以进行重新编译吗?(SQL Server),sql,sql-server,database,Sql,Sql Server,Database,在technet关于sp_重新编译的文章中,下面的备注部分说明 “sp\U重新编译仅在当前数据库中查找对象。” 这是指它可以标记为重新编译的对象函数的参数吗 例如,如果数据库a中有一个表被数据库B中的一个对象使用,数据库B中的对象是否会被标记为重新编译?首先注意,只有过程对象才会被重新编译。触发器和存储过程,而不是整个表也知道触发器和SP只是被标记为重新编译,重新编译只会在下次调用它们时发生 第二,它将只重新编译实际数据库中的对象,这意味着如果您处于数据库A的上下文中,并且尝试在其他数据库中重

在technet关于sp_重新编译的文章中,下面的备注部分说明

sp\U重新编译仅在当前数据库中查找对象。

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


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

首先注意,只有过程对象才会被重新编译。触发器和存储过程,而不是整个表也知道触发器和SP只是被标记为重新编译,重新编译只会在下次调用它们时发生

第二,它将只重新编译实际数据库中的对象,这意味着如果您处于数据库A的上下文中,并且尝试在其他数据库中重新编译数据库B.dob.SP,它将不起作用


此外,它不表示将“嵌套”重新编译。因此,如果您重新编译objectA,并且它使用objectB(在同一个数据库或另一个数据库中,这无关紧要),objectB将不会重新编译。

非常感谢。这是一个问题,因为在这种情况下,我需要手动重新编译数据库b上的内容。它回答了最近在我们的数据库中发生的一些问题。