求教:如何能令一列(C列)的值默认为“C=A列*B列”??

terry183 2008-09-26 03:12:29
如题~~~~

A、B、C三列都是float,C为两列的剩积,请问SQL里能不能直接实现C列的默认值永久为“C=A*B”呢??

在网上找很久了~~都找不到,哭~~~~~求高人指点。
...全文
103 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry183 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 szx1999 的回复:]
选定c列 --> 下面出现"列属性"的面板-->"计算列设置" -->"公式"一栏 输入 a*b.
根据需要设置 是否持久化。
保存。
[/Quote]

你们的方法都很好~~~小弟受教了~~~~感激~散分。
Sniper_Killer 2008-09-26
  • 打赏
  • 举报
回复
沒有必要放,但是大家考慮一個問題。如果要求改為 C的默認值為 A 和 B的成績的時候,改怎么做?這樣的必要似乎就有了。
等不到来世 2008-09-26
  • 打赏
  • 举报
回复
选定c列 --> 下面出现"列属性"的面板-->"计算列设置" -->"公式"一栏 输入 a*b.
根据需要设置 是否持久化。
保存。
terry183 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 roy_88 的回复:]
引用 8 楼 terry183 的回复:
引用 1 楼 roy_88 的回复:
可以;用計算列

create table t(a int,b int,c as (a*b))


可以告诉我。。。。。SQL 2005下,在那里输入呢?
我是新入职的,所以对2005不太熟~~~谢谢~


是新建表還是新增字段

以上是建表時定義

表存在時
alter table t add c as (a*b)--新增列

----在查詢分析器里執行或企業管理—數據庫—設計表
[/Quote]

如果不是新增列,是改变列呢,这样可不可以?
中国风 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 terry183 的回复:]
引用 1 楼 roy_88 的回复:
可以;用計算列

create table t(a int,b int,c as (a*b))


可以告诉我。。。。。SQL 2005下,在那里输入呢?
我是新入职的,所以对2005不太熟~~~谢谢~
[/Quote]

是新建表還是新增字段

以上是建表時定義

表存在時
alter table t add c as (a*b)--新增列

----在查詢分析器里執行或企業管理—數據庫—設計表
terry183 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wufeng4552 的回复:]
SQL code--create table tb (A int ,b int ,C as A*B)
--不過沒有必要放上去

create table tb (A int ,b int )
insert tb select 2,3
insert tb select 3,4
insert tb select 5,6
select *,A*B C from tb
drop table tb
/*
A b C
----------- ----------- -----------
2 3 6
3 4 12
5 6 30

(影響 3 個資料列)*/

[/Quote]

你们的意思,应该都是改变C列的属性吧,因为C列本来就存在的了
terry183 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
可以;用計算列

create table t(a int,b int,c as (a*b))
[/Quote]

可以告诉我。。。。。SQL 2005下,在那里输入呢?
我是新入职的,所以对2005不太熟~~~谢谢~
fa_ge 2008-09-26
  • 打赏
  • 举报
回复
在查询中写,不是更好吗
水族杰纶 2008-09-26
  • 打赏
  • 举报
回复
--create table tb (A int ,b int ,C  as A*B)
--不過沒有必要放上去

create table tb (A int ,b int )
insert tb select 2,3
insert tb select 3,4
insert tb select 5,6
select *,A*B C from tb
drop table tb
/*
A b C
----------- ----------- -----------
2 3 6
3 4 12
5 6 30

(影響 3 個資料列)*/
terry183 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
你这个C完全是个没有必要的列.
[/Quote]
也不要这么说。。。。因为这是开发的虽要吧,方便日后做数据的跟踪。
东那个升 2008-09-26
  • 打赏
  • 举报
回复
浪费
hyde100 2008-09-26
  • 打赏
  • 举报
回复

create table t(a int,b int,c as (a*b))
dawugui 2008-09-26
  • 打赏
  • 举报
回复
你这个C完全是个没有必要的列.
中国风 2008-09-26
  • 打赏
  • 举报
回复
可以;用計算列

create table t(a int,b int,c as (a*b))

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧