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

create table t12(id int, id_parent int, s int, dummy int);
go

insert into t12(id, id_parent, s, dummy) values(1, null, 1, 5);
insert into t12(id, id_parent, s, dummy) values(2, 2, 1, 4);
insert into t12(id, id_parent, s, dummy) values(3, 3, 2, 3);
insert into t12(id, id_parent, s, dummy) values(4, 1, 3, 2);
insert into t12(id, id_parent, s, dummy) values(5, 5, 4, 1);
insert into t12(id, id_parent, s, dummy) values(6, 5, 5, 1);
go

alter table t12 alter column s int not null;
go


create view vw_t12 with schemabinding as
select
	dummy,
	id_parent,
	sum(s) as s,
	count_big(*) as cnt
from
	dbo.t12
group by
	id_parent,
	dummy
go

create unique clustered index uix_vw_t12 on vw_t12(id_parent);
go

update t12
set
	id_parent = 2
where
	id = 6
go



В списке колонок в индексированном представлении кроме id_parent (по которому и должна производиться группировка), нужна еще и колонка dummy (имеющая одно и то же значение в пределах id_parent), но так как в индексированных представлениях не поддерживается min/max, то решено было сунуть ее в group by и вывести в select. Но при таком подходе, не получается сделать update как в примере выше. Можно ли как-то обойти ситуацию?
10 дек 13, 13:50    [15271080]     Ответить | Цитировать Сообщить модератору
 Re: indexed view вопрос  [new]
СтарыйШломо
Guest
Вроде помогло добавить в уникальный кластерный индекс колонку dummy.
10 дек 13, 13:56    [15271162]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить