有没有一种方法可以列出所有对象,例如使用同义词的 VIEW?

wer*_*eld 2 sql-server sql-server-2008

就像罐头上写的那样。如何确定哪些 SQL 对象正在使用给定的 SYNONYM?我想一种方法是搜索 PROC 或 VIEW 的所有内容并运行,LIKE '%SYN_NAME%'但这似乎很笨拙。

muh*_*mud 5

select * from sys.sql_expression_dependencies
where referenced_id = object_id('<syn schema>.<syn name>')
Run Code Online (Sandbox Code Playgroud)

此视图提供对依赖关系树的访问。因此,如果想要引用此返回的对象的对象,则需要递归或类似。

您可以通过连接到 sys.objects 或使用 objectproperty() 来限制视图