这就要分情况了,一种是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
触发器:
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)
如创建的表是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;
SQL Server数据中运算符与表达式
默认值貌似不可以呦。你可以用update或者触发器更新,或者,最合理的是,通过一个存储过程增加记录行,这个应该比较理想