powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как записать скобки как текст?
12 сообщений из 12, страница 1 из 1
Как записать скобки как текст?
    #39950558
Luna17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите, как можно изменить запрос, чтобы квадратные скобки учитывались как текст?
Нужно найти все процедуры, в которых использовалась таблица [Users].


SELECT DISTINCT o.name, o.xtype
FROM syscomments c
INNER JOIN sysobjects o ON c.id=o.id
WHERE c.TEXT LIKE '%.[Users]%'
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950609
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Luna17,

можно посмотреть на CREATE TABLE для таблицы с именем [Users]?
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950619
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Luna17,

можно посмотреть на CREATE TABLE для таблицы с именем [Users]?
Простите, не CREATE TABLE, а CREATE PROC, конечно.
Но если вы умудрились сделать процедуру с таким именем (зачем??), то
Код: sql
1.
LIKE '%[[]Users]%'
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950620
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Luna17,

Код: sql
1.
select object_name(referencing_id) from sys.sql_expression_dependencies where referenced_entity_name = 'Users' and referenced_class = 1



не учитывает dynamic sql конечно.
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950624
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше вообще вот так:

Код: sql
1.
2.
3.
SELECT name
FROM sys.objects
WHERE type= 'P' AND OBJECT_DEFINITION(object_id) LIKE N'%[[]Users]%';
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950626
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Luna17,

Код: sql
1.
select object_name(referencing_id) from sys.sql_expression_dependencies where referenced_entity_name = 'Users' and referenced_class = 1




не учитывает dynamic sql конечно.

felix_ff
Luna17,

Код: sql
1.
select object_name(referencing_id) from sys.sql_expression_dependencies where referenced_entity_name = 'Users' and referenced_class = 1


не учитывает dynamic sql конечно.
Он же говорит, что внутри имени квадратные скобки.
Хотя, если без LIKE, то это не проблема...
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950637
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

sql_expression_dependencies хранит зависимости объектов без имени идентификатора.

даже если у вас в процедуре обращение идет как [table_name] в том представлении referenced_entity_name будет как table_name.
что достаточно удобно.

адд: оп, неправильно Ваше уточнение прочел. но сути не меняет можно делать запрос без like where referenced_entity_name = 'text[[]_25'
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950723
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
iap,

sql_expression_dependencies хранит зависимости объектов без имени идентификатора.

даже если у вас в процедуре обращение идет как [table_name] в том представлении referenced_entity_name будет как table_name.
что достаточно удобно.

адд: оп, неправильно Ваше уточнение прочел. но сути не меняет можно делать запрос без like where referenced_entity_name = 'text[[]_25'
Нет никаких проблем создать объект с квадратными скобками в имени.
Тогда и в referenced_entity_name будут квадратные скобки.
Смотрите:
Код: sql
1.
SELECT QUOTENAME('[Users]');
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39950742
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант текстовая функция char() и судя по этому списку кодов здесь
(хотя можно получить и обратным преобразованием через http://docs.microsoft.com/en-us/sql/t-sql/functions/ascii-transact-sql]ASCII(']') ) при срабатывании на
квадратные скобки в другую функциональность (типа regex или др. спецкодов)
часть связанных проблем иногда можно обойти чем-то вроде ... char(91)+'users'+char(93) ...

однако это костыль, правильней системно решать как выше советуют
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39951054
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак не могу понять, что мешает до сих пор добавлению функций регулярных выражений в поставку сервера. Всё самому надо делать :)
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39951100
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Никак не могу понять, что мешает до сих пор добавлению функций регулярных выражений в поставку сервера. Всё самому надо делать :)


В ORACLE есть, в ВЕРТИКЕ есть, в MySQL, ещь его, есть. А в MS SQL до сир пор нет. Куда смотрят Индусы взявшие под контроль Майкрософт?
...
Рейтинг: 0 / 0
Как записать скобки как текст?
    #39951104
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

думаю они думают что раз дали возможность заливать .net сборки, тем кому нужно сами добавят :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как записать скобки как текст?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]