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

Откуда:
Сообщений: 2011
Подскажите есть ли возможность работать с представлением как с полноценной таблицей (индексированным полем). Т.е. при попытке изменить запись в таблице являющейся представлением появляется ошибка "Не удалось обновить набор EntitySet". Знаю, что лечится добавлением "ключа" в таблицу, но как это сделать с представлением? Спасибо
8 июл 11, 16:29    [10946973]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Предстваление - это не таблица. А как заставить работать с представлением ваше неизвестно что, выдающее сообщение "Не удалось обновить набор EntitySet", спрашивайте на форуме по этому вашему неизвестно чему.
8 июл 11, 16:36    [10947044]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Вдогонку, может поможет: BOL -> CREATE VIEW -> Updatable Views
8 июл 11, 16:39    [10947072]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
Антон Штерн
Member

Откуда:
Сообщений: 4
Читайте про триггеры INSTEAD OF ...
9 июл 11, 18:33    [10950815]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
aleks2
Guest
Антон Штерн
Читайте про триггеры INSTEAD OF ...


1. Не надо читать про "триггеры INSTEAD OF".
2. "триггеры INSTEAD OF" это симптом хронического геморроя и явный признак "неполного служебного соответствия" программиста.
9 июл 11, 18:45    [10950843]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
aleks2
Guest
Chek_Fedor
Подскажите есть ли возможность работать с представлением как с полноценной таблицей (индексированным полем). Т.е. при попытке изменить запись в таблице являющейся представлением появляется ошибка "Не удалось обновить набор EntitySet". Знаю, что лечится добавлением "ключа" в таблицу, но как это сделать с представлением? Спасибо


Тут ТРИ ключевых момента для View
1. Только INNER JOIN в представлении.
2. Включение в выборку Primary key из КАЖДОЙ таблицы представления.
3. WITH VIEW_METADATA


И парочка для клиента... но это зависит от клиента.
ADO:
1. UniqueTable.
2. ResyncCommand.
9 июл 11, 18:54    [10950865]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
Антон Штерн
Member

Откуда:
Сообщений: 4
aleks2
Антон Штерн
Читайте про триггеры INSTEAD OF ...


1. Не надо читать про "триггеры INSTEAD OF".
2. "триггеры INSTEAD OF" это симптом хронического геморроя и явный признак "неполного служебного соответствия" программиста.


Ну желание топикстартера работать с представлением как с таблицей тоже не совсем нормально
9 июл 11, 19:24    [10950932]     Ответить | Цитировать Сообщить модератору
 Re: Представления и ключи в MSSQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Антон Штерн
aleks2
пропущено...


1. Не надо читать про "триггеры INSTEAD OF".
2. "триггеры INSTEAD OF" это симптом хронического геморроя и явный признак "неполного служебного соответствия" программиста.


Ну желание топикстартера работать с представлением как с таблицей тоже не совсем нормально
Совершенно нормально.
Это требование входит даже в определение реляционных баз данных Эдгара Кодда (правило 6 «12-ти правил Кодда"»).
Но в полной мере никем пока не реализовано.

INSTEAD OF триггеры - неплохо.
Но иногда можно сделать секционированное представление - это намного эффективнее.
Правда речь в этом случае идёт о UNION одинаковых запросов из разных таблиц.
9 июл 11, 19:48    [10950992]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить