sql-server-2008-r2 – 定义计算列引用另一个表
发布时间:2021-01-17 03:38:23 所属栏目:MsSql教程 来源:网络整理
导读:我有两个数据库表,Team(ID,NAME,CITY,BOSS,TOTALPLAYER)和 玩家(ID,TEAMID,AGE),两个表之间的关系是一对多,一个团队可以有很多玩家. 我想知道有没有办法在Team表中定义TOTALPLAYER列? 例如,如果有10个玩家的TEAMID是1,那么Team表中ID为1的行的TOTALPLAYER列
我有两个数据库表,Team(ID,NAME,CITY,BOSS,TOTALPLAYER)和
我想知道有没有办法在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) 现在,如果您选择,则每次调用该函数,对于所选的每个团队.该值不会在Team表中保留 – 每次从Team表中选择时都会动态计算. 由于它的值没有持久存在,问题实际上是:它是否需要是表上的计算列,还是只需要使用存储的函数来计算播放器的数量,如果需要的话? (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读