Sqlserver與Mysql觸發器之間的差別

2021-09-25 23:44:15 字數 1728 閱讀 2582

sqlserver與mysql觸發器之間的差別

今天練習sqlserver,一開始感覺應該像oracle,mysql語法差不多,但是經過一下午的奮戰,才感覺原來這三個資料庫就是有區別啊,

我原來學習觸發器的時候用的是mysql,感覺還行,但是今天採用的是sqlserver,就感覺差別就是很大了。

今天將部分**展示給大家看看,

下面顯示的是觸發器用到的兩個表

--建立sc表

create table [sc](

[scid] int not null,

[sno] int not null ,

[cno] int not null ,

[score] int default null ,

primary key ([scid])

);

--新增履歷表

create table score_record (

srid int not null,

sno int not null ,

cno int not null ,

oldscore int not null ,

newscore int not null ,

updatetime datetime not null ,

primary key (srid),

);

下面顯示的是mysql寫的觸發器

--mysql寫的觸發器

--建立觸發器,將修改前後的成績插入到履歷表

drop trigger if exists `trigger_sr`;

delimiter //

create trigger `trigger_sr` after update on `sc`

for each row begin

insert into score_record

set sno = new.sno,

cno = new.cno,

oldscore = old.score,

newscore = new.score,

updatetime = now() ;

end//

delimiter ;

下面顯示的是sqlserver寫的觸發器

--sqlserver寫的觸發器

--建立觸發器,將修改前後的成績插入到履歷表

create trigger trigger_sr

on sc for update

asdeclare @sno int,@cno int,@oldscore int,@newscore int,@updatetime datetime

begin

select @oldscore=score from deleted;

select @updatetime=getdate();

select @sno=sno,@cno=cno,@newscore=score from inserted;

insert into score_record(sno,cno,oldscore,newscore,updatetime)

values(@sno,@cno,@oldscore,@newscore,@updatetime)

end

sql server與mysql差異收集

之後會陸續收集,先寫一點 sql server中的identity在mysql中的表現形式。mysql中沒有identity 函式,要設定自動編號的話應當是用 auto increment 例如 create table tbl topic topicid int not null auto inc...

SqlServer與MySql語法比較

1 複製表 包括表結構 表資料 sqlserver select into user copy from user mysql create table user copy like user insert into user copy select from user 2 多表連線做update ...

MySql與SqlServer的區別

1.sql server 是microsoft 公司推出的關係型資料庫管理系統。具有使用方便可伸縮性好與相關軟體整合程度高等優點,可跨越從執行microsoft windows 98 的膝上型電腦到執行microsoft windows 2012 的大型多處理器的伺服器等多種平台使用。microso...