我有两张相关的表格。一个用于文章类别,另一个用于文章。我想在“类别”表中按类别维护文章数量。我的表格如下:
分类
ID | CatName | ArticleCount
1 | Cat1 |
2 | Cat2 |
3 | Cat3 |
文章
ID | CatID | ArticleName
1 | 1 | Art1
2 | 2 | Art2
3 | 3 | Art3
4 | 1 | Art4
使用SQL,在添加文章时如何连续更新Categories表,以便我可以按类别保持文章数量的最新数量?鉴于我提供的示例数据,我设想我的Categories表最终结束:
类别(根据文章表格中的相关记录自动更新ArticleCount)
ID | CatName | ArticleCount
1 | Cat1 | 2
2 | Cat2 | 1
3 | Cat3 | 1
答案 0 :(得分:2)
您可以轻松完成的一个选项是将ArticleCount添加为Categories表中的计算字段,该字段指向计算该类别的文章的UDF
CREATE FUNCTION [dbo].[fn_cnt](@CatID INT)
RETURNS int
AS
BEGIN
RETURN (SELECT COUNT(1) FROM Articles WHERE CatID = @CatID)
END
GO
CREATE TABLE Categories(
[Id] INT,
[CatName] [varchar](64),
[ArticleCount] AS ([dbo].[fn_cnt]([Id]))
)
GO
希望有所帮助