Создание обобщенного типа для использования в качестве параметра табличного значения - PullRequest
1 голос
/ 25 августа 2011

Я обнаружил, что есть несколько точек в хранимых процедурах, которые я создаю, где я хочу, чтобы хранимая процедура принимала список идентификаторов в различных таблицах, над которыми SP должен выполнить операцию.Я рассматриваю возможность использования параметров таблицы значений.Что меня интересует, так это то, стоит ли создавать один тип, который просто содержит один столбец «ID int», и использовать его в качестве типа данных для всех моих TVP, или же лучше определитьвведите для каждого SP, в случае, если в будущем я захочу расширить переданные значения.

Кто-нибудь имеет опыт с этим?

edit В случае, если это делаетЛюбая разница с вашей рекомендацией, списки ID, которые я передаю, может быть порядка 150 000 записей.

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Что я могу предложить вам в плане опыта, так это то, что если вы обнаружите, что вам нужно изменить определение пользовательского типа таблицы, вам потребуется сбросить каждую ссылку на тип, прежде чем вы сможетепопутал с этим.В разделе Минусы упомянуто это большое раздражение.Поэтому для нас стоило поддерживать код для определения уникальных типов таблиц на основе ожидаемого использования, даже если оно соответствовало существующим типам.YMMV

1 голос
/ 25 августа 2011

Почему бы просто не использовать встроенную табличную функцию, которая разделяет список и возвращает таблицу?Если вам нужно использовать его несколько раз, вы можете просто вызвать его один раз и поместить результаты в локальную переменную таблицы.Для меня TVP наиболее выгоден, когда вам нужно получить сложные массивы из клиентских приложений в базу данных - я не уверен, стоит ли беспокоиться об одном столбце, содержащем идентификаторы.

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