sql server一列默认值等于另两列之和

比如有a,b,c,现设置c的默认值为a+b,怎样设置。谢谢。
2024-12-26 05:12:33
推荐回答(5个)
回答1:

这就要分情况了,一种是a,b,c在同一个表里面,如果是这样的话那直接update table set c=a+b
另外一种是a,b在一个表里面,c在一个表里面,这样的话只是创建一个新的表,你可以建一个临时表,
create #a(a int ,b int c, int)
insert into #a select a,b,a+b from table

回答2:

触发器:
create trigger 触发器名
on 表名
for insert,update
as
if update (c)
update 表名 set c=inserted.a+inserted.b
where exists(
select * from inserted
where inserted.a=表名.a
and inserted.b=表名.b
and inserted.c=null)

回答3:

如创建的表是abc,如:create table abc(a varchar2(10),b varchar2(10),c varchar2(20));
再创建过程new003 如:
create or replace Procedure news003(a In Varchar2,b In Varchar2) Is
a Varchar2(10);
b Varchar2(10);
c Varchar2(20);
Begin
a :=farstName;
b :=lastName;
c :=farstName||lastName;
Insert Into abc Values(a,b,c);
END;
执行此过程:EXEC new003('a','b')可实现你想要的功能。
执行过程来代替插入操作
可以用触发器
CREATE OR REPLACE TRIGGER ISERT_ADD
BEFORE INSERT ON abc
FOR EACH ROW
BEGIN
:NEW.c := :NEW.a||:NEW.b;
END;

回答4:

SQL Server数据中运算符与表达式

回答5:

默认值貌似不可以呦。你可以用update或者触发器更新,或者,最合理的是,通过一个存储过程增加记录行,这个应该比较理想