SQL Server : SELECT from sys. 表和 sys.views

标签 sql sql-server

下面的 SQL 似乎可以工作,但我想知道是否有更好的方法来编写它。我正在尝试选择具有特定名称的所有 View 和表。如果找到匹配项,则应该只有一个返回值。

SELECT DISTINCT name 
FROM sys.tables 
WHERE name = 'MyName'  

UNION ALL

SELECT DISTINCT name 
FROM sys.views 
WHERE name = 'MyName'

最佳答案

还有另一个 View 可以帮助您 - 它是一个包含表和 View 的单个 View 。在性能方面,我的单表查询性能更好,尽管您只会在具有大量表的数据库上注意到。 为此,我修改了您的查询。

SELECT 
    DISTINCT NAME 
FROM SYS.OBJECTS
WHERE TYPE IN ('U','V')
AND NAME= 'MYNAME'

U = 用户表
V = 查看

关于SQL Server : SELECT from sys. 表和 sys.views,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46005426/

相关文章:

mysql - SQL 和 2 复杂连接

SQL - 如何根据值执行计算

sql - 如何对包含星号的 PostgreSQL 中的 VARCHAR 列进行排序

sql - 在 SQL Server 中使用分隔符拆分列

sql - 使用 Openquery 链接服务器更新表

SQL Server 2012 在简单的更改上需要很长时间才能添加 NULL 列

mysql - 忽略最后 2 位数字的 SQL 代码

SQLite LIKE & ORDER BY 匹配查询

sql - case when 语句中按列号对表进行排序

ASP.Net 嵌套转发器逻辑 hell