我试图运行SQL Server的sys.dm_sql_referencing_entities
存储过程来查看表和sprocs的依赖关系。我为特定的表sys.dm_sql_referencing_entities
运行了myTable1
,我知道该表在特定的存储过程mySproc2
中具有依赖关系。但是,sys.dm_sql_referencing_entities
没有返回任何内容。
我注意到在应该使用sys.dm_sql_referencing_entities
返回的存储过程中,它没有括号中的myTable
。基本上,它是一个简单的查询,看起来像SELECT * FROM myTable1
而不是SELECT * FROM [myTable1]
。
这是否会导致sys.dm_sql_referencing_entities
无法返回mySproc2
?
答案 0 :(得分:0)
您在SP中引用表格的方式无关紧要。
但是,您应该将表名称作为两部分名称传递给dm_sql_referencing_entities,包括架构。例如:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream infile("test.txt");
string line;
if(infile.is_open())
{
cout << infile.rdbuf();
}
else
{
cout << "error" << endl;
}
infile.close();
return 0;
}
您还应该知道,如果引用来自同一实例上的不同数据库(例如SELECT *
FROM sys.dm_sql_referencing_entities ('dbo.Products', 'OBJECT')
,您将不会在结果集中看到该条目。
希望它有所帮助。