所以我发现自己需要在我的表中有一个字段,该字段是另一个表中所有“商店”的计数。因此,该表应包含 Centre_Name、Location 和 Shop_Count。我已经创建了表格,那么如何添加这样的字段呢?
当在另一个表中添加或删除商店时,该字段也应该明显更新。此外,每个商店都有一个对应的 Centre_Name。
该表位于 SQL Server Express 数据库中,链接到我在 Visual Studio 中的 MVC 4 项目。
谢谢!
所以我发现自己需要在我的表中有一个字段,该字段是另一个表中所有“商店”的计数。因此,该表应包含 Centre_Name、Location 和 Shop_Count。我已经创建了表格,那么如何添加这样的字段呢?
当在另一个表中添加或删除商店时,该字段也应该明显更新。此外,每个商店都有一个对应的 Centre_Name。
该表位于 SQL Server Express 数据库中,链接到我在 Visual Studio 中的 MVC 4 项目。
谢谢!
这是非常繁重的非规范化,但您可以创建一个函数来获取计数,然后将该函数用作计算列的一部分。请参阅:定义计算列引用另一个表
所以你想做:
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
更多关于计算列的信息。