VIEW каскад на вставке, затем дамп в таблицу / VIEW вместо триггера, а затем дамп в таблицу? - PullRequest
0 голосов
/ 14 июля 2011

Я хочу вывести данные о просмотре в таблицу. У меня есть VIEW, который выполняет множество кейсов / алгоритмов / вроде этого: (пока что не занимайтесь этим кодом ...)

    select  c1.a as car, c1.b as boat, c1.c as tree    convert(char(1),
 dbo.aa(l1+l12+l314)) as something1,    convert(varchar(9), dbo.bb(l1+l1+l13+l14, 2)) 
as something2,   bo.bb(l1+l12+l13+l14, 3) as something3,    convert(char(1),
 dbo.aa(l1+l1+l1+l14)) as something4, case when dbo.aa(l1+l12+l13+l14, 2) like 
'ttt'  then convert(varchar(20), bb(l1+l12+l13+l14, 5))     
 else null ............... etc..

При вставке я хочу, чтобы данные этого ПРОСМОТРА были сброшены в таблицу.

Жестко ли я кодирую каскад при вставке при создании этого представления? ИЛИ

Создать ли вместо триггера вставку для выгрузки в таблицу?

В любом случае, как бы я это закодировал?

1 Ответ

1 голос
/ 14 июля 2011

Не вставлять через вид.Если представление имеет сложную логику, может быть невозможно отобразить обратно на базовую таблицу / таблицы, и вставка может быть невозможна.

Например, используя ваш пример: ifпредставление обновляется, чтобы иметь другое значение для поля something1, как это значение должно быть деконструировано до правильных базовых значений для l1, l12 и l314?

Использованиевместо этого хранимую процедуру и убедитесь, что приложение использует ее и не пытается обновить представление.

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

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