0

所以我发现自己需要在我的表中有一个字段,该字段是另一个表中所有“商店”的计数。因此,该表应包含 Centre_Name、Location 和 Shop_Count。我已经创建了表格,那么如何添加这样的字段呢?

当在另一个表中添加或删除商店时,该字段也应该明显更新。此外,每个商店都有一个对应的 Centre_Name。

该表位于 SQL Server Express 数据库中,链接到我在 Visual Studio 中的 MVC 4 项目。

谢谢!

4

1 回答 1

2

这是非常繁重的非规范化,但您可以创建一个函数来获取计数,然后将该函数用作计算列的一部分。请参阅:定义计算列引用另一个表

所以你想做:

CREATE FUNCTION dbo.CountShops (@Centre_Name VARCHAR[x])
RETURNS INT 
AS BEGIN
    DECLARE @ShopCount INT

    SELECT @ShopCount = COUNT(*) FROM dbo.Shops WHERE Centre_Name = @Centre_Name

    RETURN @ShopCount
END

然后将其称为您的专栏的一部分:

ALTER TABLE dbo.Shops
ADD Shop_Count AS dbo.CountShops(Centre_Name) 

...这是假设 Centre_Name 是您计算商店的定义属性。你用什么来计算商店?如果它只是计算商店表中的行数,您可以删除参数并执行以下操作:

CREATE FUNCTION dbo.CountShops ()
    RETURNS INT 
    AS BEGIN
        DECLARE @ShopCount INT

        SELECT @ShopCount = COUNT(*) FROM dbo.Shops

        RETURN @ShopCount
    END

更多关于计算列的信息

于 2013-03-24T21:22:17.427 回答