Re: [SQL ] 请问如何将orale的trigger和sequence放到sqlserver上

楼主: konkonchou (卡卡猫)   2019-09-08 04:33:05
※ 引述《timmer (.......................)》之铭言:
: 数据库名称:SQL Server
: 数据库版本:2014
: 内容/问题描述:
: table为TABLEA
: 资料字段为COLUMNA 资料型态为int
: sqquence为SEQ_COLUMNA
: 请问如何在SQL Server中实现如以下oracle的trigger
: CREATE OR REPLACE TRIGGER TRIG_INSERT_TABLEA
: BEFORE INSERT ON TABLEA FOR EACH ROW
: DECLARE
: BEGIN
: IF :new.COLUMNA > 100 THEN
: select SEQ_COLUMNA.nextval into :new.COLUMNA from dual;
: END IF;
: END;
CREATE TRIGGER TRIG_INSERT_TABLEA
ON TABLEA INSTEAD OF INSERT
AS
BEGIN
Insert TableA (ColumnA)
Select Next Value For SEQ_COLUMNA
From inserted i
Where i.ColumnA > 100;
Insert TableA (ColumnA)
Select ColumnA from inserted i
Where i.ColumnA <= 100;
END
或是 Sequence 设为默认值, 特殊情形再选择放值进去
USE tempdb
go
CREATE Sequence dbo.SEQ_COLUMNA Start With 101 As int;
go
Create Table dbo.TABLEA
(ColumnA int Default (Next Value For dbo.SEQ_COLUMNA)
Primary Key, DataA varchar(25));
go
作者: timmer (.......................)   2019-09-09 09:25:00
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com