SQL Server Management Studio - 在表列表中使用多个过滤器?
-
06-09-2019 - |
题
在 Management Studio 中,您可以右键单击表组来为表列表创建过滤器。有没有人找到一种在过滤器中包含多个表的方法?例如,我想要所有带有“br_*
“ 和 ”tbl_*
“ 现身。
有人知道怎么做吗?
解决方案
您也许可以将自己的插件添加到 SMSS,这将允许您执行您正在寻找的操作:
编写 SQL Server Management Studio 2005 加载项的黑魔法
使用加载项扩展 SQL Server 2005 Management Studio 中的功能
第一个专门用于搜索和显示具有给定名称的所有模式对象,以便您可以扩展您要查找的内容。
其他提示
否,你不能做到这一点。当我们第一次Management Studio中我用尽了一切的一切可能的组合,你能想到的:_
,%
,*
,"
,'
,&&
,&
,and
,or
,|
,||
,等等...
我用蟾蜍对于具有非常好的过滤选项的SQL Server(免费版)。
我使用的是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来看看构造查询,并根据需要进行调整。
不知道这同样的bug是在以前的SQL Management Studio中版本或何时会是固定的,但现在我很高兴的结果。
起初看起来它可以使用一个CONTAINS
查询(例如"br_*" OR "tbl_*"
),但它似乎没有。它似乎只支持,然后将其传递到一个LIKE
条款(例如'app'
变得'%app%'
)。
正如其他人所说,你不能在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;
在SQL注入方法仍然有效(有点)作为SSMS 2017 v17.8.1的,虽然它把围绕%
符号括号,所以它会解释这些字面上。
如果您使用的名称 - >包含过滤器,探查显示:
... AND dtb.name LIKE N'%MyDatabase1%')
所以,在名称 - >包含字段:MyDatabase1') OR (dtb.name LIKE 'MyDatabase2
应该简单的情况下做到这一点。
您的运气,我只是征服了这一壮举,虽然我的成功是小的,因为你可以通过架构这样可以让你看到超过1台,但你必须输入你想改变它,每次在过滤器文本过滤器。
这是旧的,我知道,但它是很好的了解,它可以工作,如果你输入刚刚进入“过滤器”文本。跳过*
或%
或任何其他标准的搜索字符,只要输入br_
或tbl_
或任何你想过滤的。