SQL Server 2008 - вычисляемый столбец - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть две таблицы:

1) Потоки

2) Комментарии

Внутри потоков Я хочу создать столбцы комментариев. Я хотел бы, чтобы столбец комментариев в таблице потоков вычислялся в зависимости от количества комментариев с соответствующим идентификатором потока.

Есть ли простой способ изменить текущую таблицу потоков? Спасибо.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

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

1 голос
/ 16 ноября 2011

Вы можете использовать

-- be careful, I do asume lot of field names
create view withCount as
select s.*, c.cant 
from Streams s
left join 
   (select Streams_ID, count(*) as cant from Comments group by Streams_ID) as c
   on s.id = c.Streams_ID

А затем

select * from withCount where ... order by ...  // or whatever you want

Не используйте триггеры для этой задачи, их сложнее поддерживать и недооценивать

...