2016-05-09 3 views
0

Я пишу хранимую процедуру, которая должна использовать тип таблицы, определенный пользователем, чтобы удалить несколько строк без необходимости запуска хранимой процедуры несколько раз. Мой вопрос заключается в том, что можно написать один пользовательский тип таблицы (вместо 17; по одному для каждой таблицы) и добавить столбец, который указывает таблицу, к которой он относится. Например вот мой ВЕЬЕТЕ:Определенные пользователем типы таблиц

DELETE FROM Table1 
WHERE A_ID IN (SELECT ID FROM UserDefinedTableType WHERE TblClm = 'Table1' 

Могу ли я использовать один и тот же определенный пользователем тип таблицы вышеупомянутое заявление и следующее заявление

DELETE FROM Table2 
WHERE A_ID IN (SELECT ID FROM UserDefinedTableType WHERE TblClm = 'Table2' 

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

Спасибо за любую помощь.

+1

Я не вижу в этом ничего плохого, но это не то, что я видел раньше. Я бы использовал присоединение к вашей инструкции delete вместо IN, но, честно говоря, это будет тем же самым. –

+0

Хорошо спасибо. Я мог бы использовать соединение, но я просто предпочитаю IN, поэтому я могу явно определить, какие идентификаторы удаляются. Спасибо за предложение. –

+0

Вы бы присоединились к ID. :) –

ответ

0

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

DELETE t1 
FROM Table1 t1 
JOIN UserDefinedTableType udt ON t1.A_ID = udt.ID 
WHERE udt.TblClm = 'Table1' 
+0

Я знаю, что вы имели в виду, используя соединение Я использую их все время, я просто предпочитаю IN, потому что для меня это немного чище. –

Смежные вопросы