数据库字段设置 在线等待(50分)

  • 主题发起人 xuefeiyang
  • 开始时间
To coclete
那个我知道,但是怎么才能值更新当前一条数据呢?
UPDATE T_Table SET h=1 WHERE a+b+c+d=e+f+g
这个应该是更新整个表的
 
To coclete
h,i数据不是在a,b,c,d,e,f,g的数据输入后用触发器产生的
他们是数据库中的字段,我把他们做成计算列
 
既然是根据字段计算字段的内容,那就没有必要保存到表中,表的设计是否有问题,还不如建个视图来得合理,大家觉得呢?
 
现在我有些糊涂
我所说的计算列是SQL server中的计算列,我个人所理解的计算字段是在编程时设置的,
这两者应该不一样吧?
 
你的数据库设计有严重的问题
首先,由该表计算而得到的数据根本就不应该存放到该表之中。
所以你的数据库中表应该只有前7个字段。
具体你所要达到的要求,同意 Enigma0702 ,可以建一个视图去处理。
例 :
表可以建立为 a,b,c,d,e,f,g 表名为:TDATA
视图可以为 CheckTDATA
脚本如下:
select a,b,c,d,e,f,g, a+b+c+d as h,e+f+g as i,
( Case if a+b+c+d = e+f+g Then 1 Else 0 End) as j
from Tdata
就取到了你所要的表。
注意,维护表中数据时用 TData
查询表时用 CheckTDATA

 
首先很感谢大家的帮助
再就是如果‘由该表计算而得到的数据根本就不应该存放到该表之中’那么SQL server2000
又何必增加计算列这个功能呢?
 
这样可以让计算的工作在数据库后台进行,提高效率
 
我就是要让计算的工作在数据库后台进行,提高效率才用的阿。可是上面的朋友说
‘由该表计算而得到的数据根本就不应该存放到该表之中’。我才不理解了。
朋友们说用视图自然是一种方法,但因为种种原因修改起来会麻烦一些。那么还有其
他办法么?例如触发器,但是只改变当前数据。
 
To xj_liyq
SQL server说不支持有case的SQL,无法建立视图,怎么回事?
谢谢
 
建视图不是更简单些吗
 
xirumin,同意
 
多人接受答案了。
 
靠,炒分
 
顶部