Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обновление записей одной таблицы по записям другой при неполном совпадении структуры  [new]
KS_DB
Member

Откуда:
Сообщений: 2
Здравствуйте! Возникла задача, которая, вроде бы, тривиальна, но не совсем. Знаю, что подобные вопросы поднимались, но ни одно решение не подходит в данном случае.

Есть 2 таблицы: Т1 и Т2. В таблицу Т1 инсертятся записи, и по триггеру должна апдейтиться таблица Т2 этими же записями (именно апдейт). Но есть одно "но". Структура таблиц неизвестна заранее. Известно только поле первичного ключа - T1.id и T2.id. Есть только часть совпадающих (имя-тип данных) полей (говоря математическим языком - пересечение). Нужно апдейтить именно эти совпадающие по названиям поля, игнорируя остальные. Можно ли такое решить на уровне SQL?
24 дек 14, 10:51    [17044357]     Ответить | Цитировать Сообщить модератору
 Re: Обновление записей одной таблицы по записям другой при неполном совпадении структуры  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
KS_DB
Структура таблиц неизвестна заранее. Известно только поле первичного ключа - T1.id и T2.id. Есть только часть совпадающих (имя-тип данных) полей (говоря математическим языком - пересечение). Нужно апдейтить именно эти совпадающие по названиям поля, игнорируя остальные. Можно ли такое решить на уровне SQL?
В смысле, что бы триггер сам написался? Такого в сиквеле нет. Можно написать генератор триггеров, который по метаданным сделает триггер с нужным кодом.
24 дек 14, 11:01    [17044426]     Ответить | Цитировать Сообщить модератору
 Re: Обновление записей одной таблицы по записям другой при неполном совпадении структуры  [new]
KS_DB
Member

Откуда:
Сообщений: 2
alexeyvg,

нет, не сам. Была мысль, например, обойти поля в курсоре по INFORMATION_SCHEMA.columns, и при совпадении названий апдейтить. Но застопорился на самом апдейте, ибо не разобрался, как его сделать через EXEC.
24 дек 14, 11:06    [17044447]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить