Подтвердить что ты не робот

SQL Server Management Studio - использование нескольких фильтров в списке таблиц?

В Management Studio вы можете щелкнуть правой кнопкой мыши по группе таблиц, чтобы создать фильтр для списка таблиц. Кто-нибудь понял способ включения нескольких таблиц в фильтр? Например, я бы хотел, чтобы все таблицы с "br_*" и "tbl_*" отображались.

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

Вы можете добавить свой собственный аддон к SMSS, который позволит вам делать то, что вы ищете:

Черное искусство написания надстройки SQL Server Management Studio 2005

Расширение функциональности в SQL Server 2005 Management Studio с помощью надстроек

Первый предназначен специально для поиска и отображения всех объектов схемы с заданным именем, чтобы вы могли расширить это для того, что вы ищете.

Ответ 2

Нет, вы не можете этого сделать. Когда мы впервые получили Management Studio, я пробовал все возможные комбинации всего, о чем вы могли подумать: _, %, *, ", ', &&, &, and, or, |, || и т.д.

Ответ 3

Поначалу похоже, что он может использовать запрос CONTAINS (например, "br_*" OR "tbl_*"), но, похоже, это не так. Кажется, он поддерживает только значение, которое затем передается в предложение LIKE (например, 'app' становится '%app%').

Ответ 4

Я использовал Toad для SQL Server (бесплатная версия), которая имеет очень хорошие параметры фильтрации.

Ответ 5

Я использую 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 или когда она будет исправлена, но пока я доволен результатом.

Ответ 6

конечно, не так красиво, но для быстрого доступа к информации схемы вы всегда можете просто Script Table as... Create To... New Query Editor Window, а затем использовать кнопку "Comment Comment" в редакторе чтобы прокомментировать все это. Лично я считаю, что это быстрее просматривать и легче копировать.

Ответ 7

Как говорили другие, вы не можете сделать это в 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;

Ответ 8

Метод SQL-инъекции по-прежнему работает (в некоторой степени) с SSMS 2017 v17.8.1, хотя он заключает в скобки символ %, поэтому он будет интерпретировать их буквально.

Если вы используете фильтр Name-> Contains, Профилировщик показывает:... AND dtb.name LIKE N'%MyDatabase1%')

Таким образом, в поле Name-> Contains: MyDatabase1') OR (dtb.name LIKE 'MyDatabase2 следует сделать это для простых случаев).

Ответ 9

В счастье, я просто победил этот подвиг, хотя мой успех невелик, потому что вы можете фильтровать по схеме, которая позволит вам увидеть более 1 таблицы, но вы должны набирать текст фильтра каждый раз, когда хотите его изменить.

Ответ 10

Это старый, который я знаю, но хорошо знать, что он может работать, если вы вводите только ввод текста "фильтр". Пропустите * или % или любые другие стандартные символы поиска, просто введите br_ или tbl_ или все, что вы хотите отфильтровать.