Идентификация всех хранимых процедур и таблиц с использованием пользовательского типа данных в T-Sql - PullRequest
0 голосов
/ 15 ноября 2018

Я использую SSMS, и у меня есть пользовательский тип данных, который был создан в начале 2000 года с прикрепленным к нему объектом правила.

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

Я просматривал старые сценарии и использовал sp_help имя_таблицы для поиска этих экземпляров, но мне было интересно, есть ли способ найти все таблицы / столбцы и хранимые процедуры, которые используют определенный пользовательскийопределенный тип данных.

Спасибо.

РЕДАКТИРОВАТЬ: Я выяснил, как найти все виды использования пользовательских типов данных в таблицах

SELECT TABLE_NAME, COLUMN_NAME, DOMAIN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DOMAIN_NAME = 'UDT_name'

Для хранимых процедур я удалил обнаруженный метод, потому что NicVerAZ связал лучший способ сделать это ниже.

1 Ответ

0 голосов
/ 15 ноября 2018

См. Статью ниже о том, как правильно искать строку в определении хранимой процедуры:

Поиск текста в хранимой процедуре в SQL Server

Как я уже писал в комментарии выше, ROUTINE_DEFINITION - это NVARCHAR (4000), а определение более длинных хранимых процедур сокращено.

Ваш второй метод неплох, он делает, но ваш первый более корректен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...