• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

定义计算列引用另一个表

sql-server-2008-r2 来源:James 5次浏览

我有两个数据库表,ID, NAME, CITY, BOSS, TOTALPLAYER)和 球员ID, NAME, TEAMID, AGE),这两个表之间的关系是一对多的,一个团队可以有很多的球员。定义计算列引用另一个表

我想知道有没有办法在Team表中定义一个TOTALPLAYER列作为计算?

例如,如果有10名球员的TEAMID为1,则在Team表,ID是1具有TOTALPLAYER柱,以10的值。如果我添加一个球员排,TOTALPLAYER列的值上升到11,我不需要为它明确赋值,让它由数据库生成。任何人都知道如何实现它?

Thx提前。

顺便说一句,该数据库是SQL Server 2008 R2的


===========解决方案如下:

是的,你可以做到这一点 – 你需要一个函数来计算为球队的球员,并使用在计算列:

CREATE FUNCTION dbo.CountPlayers (@TeamID INT) 
RETURNS INT 
AS BEGIN 
    DECLARE @PlayerCount INT 

    SELECT @PlayerCount = COUNT(*) FROM dbo.Player WHERE TeamID = @TeamID 

    RETURN @PlayerCount 
END 

,然后定义计算列:

ALTER TABLE dbo.Team 
ADD TotalPlayers AS dbo.CountPlayers(ID) 

现在,如果你选择,该函数被调用每一次,对于被选择的每个团队。该值不会在队伍表中保留 – 每次从队队列表中选择时,该值都会随时计算。

因为它的价值不是持久的,所以问题的确是:它是否需要是表格上的计算列,或者如果需要,是否可以使用存储函数计算玩家人数?


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)