SQL Server Management Studio - 在表列表中使用多个过滤器?

问题描述:

在Management Studio中,您可以右键单击表组,为表列表创建过滤器。有没有人想出了在过滤器中包含多个表格的方法?例如,我想要显示所有带有“br_*”和“tbl_*”的表格。SQL Server Management Studio - 在表列表中使用多个过滤器?

任何人都知道如何做到这一点?

你也许可以推出自己的插件,以SMSS,将允许你做你在找什么:

The Black Art of Writing a SQL Server Management Studio 2005 Add-In

Extend Functionality in SQL Server 2005 Management Studio with Add-ins

第一个是专为搜索和显示所有具有给定名称的模式对象,因此您可能可以根据您的需求进行扩展。

没有,你不能做到这一点。当我们第一次Management Studio中我用尽了一切的一切可能的组合,你能想到的:_%*"'&&&andor|||,等...

+12

对于这样一个具有如此巨大许可成本的流行软件,SQL Management Studio存在一些非常基本的限制。这只是冰山一角。 – Contango 2014-04-22 10:33:09

+5

Management Studio是一款附带SQL Server许可证的免费软件。 – vaitrafra 2016-08-05 12:44:24

起初,它看起来可以使用CONTAINS查询(例如"br_*" OR "tbl_*"),但它似乎并不如此。它似乎只支持,然后将其传递到一个LIKE条款(例如'app'变得'%app%')的值。

我用蟾蜍对于具有非常好的过滤选项的SQL Server(免费版)。

你好运,我刚刚征服了那个壮举,虽然我的成功很小,因为你可以通过架构进行过滤,这将允许你看到多于一个表格,但是你必须在每次你想改变它时键入过滤文本。

当然

,不那么漂亮,但用于快速访问架构信息,你总是可以只脚本表为...创建要......新的查询编辑器窗口,然后使用编辑器工具栏上的“选择注释”按钮评论整个事情。就我个人而言,我认为查看和更容易复制更快。

正如其他人所说,你不能在SQL Server Management Studio中(并包括2014)做到这一点。

下面的查询会给你的表的过滤列表,如果这是你所需要的:

SELECT 
    CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) AS TABLE_SCHEMA_AND_NAME, 
    TABLE_SCHEMA, 
    TABLE_NAME 
FROM 
    INFORMATION_SCHEMA.TABLES 
WHERE 
    TABLE_SCHEMA IN ('X', 'Y', 'Z') -- schemas go here 
ORDER BY 
    TABLE_SCHEMA, 
    TABLE_NAME; 

这是旧的,我知道,但它是很好的了解,它可以工作,如果你输入刚刚进入“过滤器”文本。跳过*%或任何其他标准的搜索字符,只要输入br_tbl_或任何你想过滤的。

我使用SQL Server Management Studio中v17.1,它有一个SQL注入漏洞,在它的过滤器结构,所以你其实可以逃脱默认

tbl.name like '%xxx%' 

,写自己的查询(有一些限制) 。例如,以过滤与“_arch”,“_hist”,“_purge”结尾的表我用下面的过滤器值

_arch') and RIGHT(tbl.name, 5) != N'purge' and RIGHT(tbl.name, 4) != N'hist' and not(tbl.name like N'bbb 

您可以使用SQL Server Profiler看到构造查询,并根据需要进行调整。

不确定在以前的SQL Management Studio版本中是否存在相同的错误,或者它会被修复,但现在我对结果很满意。

是的,不那么漂亮,但为了快速访问模式信息,您始终可以将脚本表作为...创建到...新建查询编辑器窗口,然后使用编辑器工具栏上的“选择注释”按钮把整件事评论出来。就我个人而言,我认为查看和更容易复制更快。