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