【发布时间】:2011-06-29 13:38:32
【问题描述】:
我注意到,当我查询 dbo.sysobjects 以确定数据库中的所有对象时,它还会选取名称以“syncobj_”开头的所有系统视图。它们的 xtype 为“V”,似乎没有任何方法可以知道这些是系统视图,而不是我自己的,除非通过检查视图的名称。还有其他方法吗?我想从我正在创建的查询中排除这些。
【问题讨论】:
-
您可能想查看此 SO Q/A:stackoverflow.com/questions/2910077/…
-
您使用的是什么版本的 SQL Server?这可能会影响您获得的回复的有效性或质量。例如,如果您使用的是 2005+,则有比 sysobjects 更好的答案。建议使用确切(或最低)版本进行标记(例如标记“sql-server-2008”)。
-
@Aaron - 如果我想要数据库中所有对象的完整列表,还有什么比 sysobjects 更好的选择?我知道我可以使用信息模式视图,但是我需要查询其中的十几个。使用 2008 年。
-
sys.objects 优于 sysobjects。后者是仍然存在于产品中的兼容性视图,只是因为必须更改的代码量。以后应该使用目录视图,而不是兼容性视图。
标签: sql-server tsql sql-server-2008