Re: [SQL ] 請問如何將orale的trigger和sequence放到sqlserver上

看板Database (資料庫)作者 (易而普科技)時間5年前 (2019/09/08 04:33), 編輯推噓1(100)
留言1則, 1人參與, 5年前最新討論串2/2 (看更多)
※ 引述《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 -- COLUMNA >= 100 Insert dbo.TABLEA (DataA) Values ('A'); -- COLUMNA < 100 Insert dbo.TABLEA (ColumnA, DataA) Values (1, 'B'); go Select * From dbo.TABLEA; go Drop Table dbo.TABLEA; go Drop Sequence dbo.SEQ_COLUMNA; -- https://www.erptech.com.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.2.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1567888389.A.9E4.html

09/09 09:25, 5年前 , 1F
感謝
09/09 09:25, 1F
文章代碼(AID): #1TT1G5da (Database)
文章代碼(AID): #1TT1G5da (Database)