我有兩個表:SQL Server 2008中 - 計算列
1)流
2)評論
內流,我想創建一個評論欄目。我希望Streams表中的Comments列取決於與匹配的StreamId有多少註釋。
有沒有簡單的方法來改變當前的流表?謝謝。
我有兩個表:SQL Server 2008中 - 計算列
1)流
2)評論
內流,我想創建一個評論欄目。我希望Streams表中的Comments列取決於與匹配的StreamId有多少註釋。
有沒有簡單的方法來改變當前的流表?謝謝。
您可以使用
-- 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
不要使用觸發器來這一任務,他們更難治維護和
如果你想要一個「真正的」列值,看看使用觸發器。不過,另一種選擇可能是計算此字段的視圖 - 如果您要根據主鍵值計算評論,那麼它應該是一個非常快速的計算。
是啊,我根據計算,以understud PK。我如何創建一個視圖? – user1027620
不錯,這完美的作品。但我現在可以使用withCount而不是原始表流?由於它具有Streams所做的一切,包括評論數量。對? – user1027620
你可以,但記住當你在Streams表上創建一個新的字段時,你需要重新編譯withCount視圖來識別這些新的字段。而且,Luis Siquot,在這種情況下保持觸發問題非常好。它確實是。 – Hamikzo
簡單的anwser:你可以使用視圖來選擇而不是表格。複雜的anwser:您可以在視圖上創建觸發器來管理刪除,更新和插入(不要爲此簡單任務推薦),直接使用該表。 –