SQL Server中類似Oracle中before觸發器
有這樣的應用情形,除了使用2表之間主外來鍵約束中啟用級聯修改和級聯刪除這種SQL Server自帶的解決方案外,我們還可以使用觸發器來完成類似的功能,以下通過一個刪除來舉例說明:
假如一個SysFuncDic(功能字典表)、SysFuncRights(功能許可權表),功能許可權表中的FuncID和功能字典表中FuncID有外來鍵約束關係,現在我們要刪除SysFuncDic中的記錄,因為做過外來鍵約束關係,所以無法刪除。解決的辦法是首先刪除SysFuncRights表中所有與FuncID對應的記錄即可。
create table SysFuncDic
(
FuncID int not null identity(1,1) primary key,
FuncName varchar(100)
)
create table SysFuncRights
(
ID int not null primary key identity(1,1),
FuncID int not null,
EmpID int not null
)
insert into SysFuncDic values('AA')
insert into SysFuncDic values('BB')
insert into SysFuncDic values('CC')
insert into SysFuncRights values(1,12)
insert into SysFuncRights values(2,12)
insert into SysFuncRights values(3,12)
/***********************刪除觸發器**************************/
create trigger tri_delete on SysFuncDic
instead of delete
as
begin
declare @FuncID int;
select @FuncID = FuncID from deleted;
delete SysFuncDic where FuncID = @FuncID;
delete SysFuncRights where FuncID = @FuncID;
end
/**********************************************************/
select * from SysFuncDic; --查詢功能字典表記錄
select * from SysFuncRights; --查詢功能許可權表中記錄
delete from SysFuncDic where FuncID=1; --刪除功能字典表中記錄,進行測試
相關文章
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- sql-server觸發器SQLServer觸發器
- SQL Server:觸發器詳解SQLServer觸發器
- SQL Server 觸發器詳情HOPPSQLServer觸發器
- 淺入淺出SQL Server 觸發器SQLServer觸發器
- SQL Server實戰五:儲存過程與觸發器SQLServer儲存過程觸發器
- mysql觸發器案例分析以及before和after的區別MySql觸發器
- Oracle開發基礎-觸發器Oracle觸發器
- SQL Server中GROUP BY(連結)SQLServer
- VSCode中類似Postman的外掛VSCodePostman
- SQL觸發器例項講解SQL觸發器
- Sql Server資料庫類似正規表示式的字元處理問題SQLServer資料庫字元
- .sql檔案匯入到sql server中SQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- Oracle中的sql hintOracleSQL
- 禁止oracle表的觸發器triggerOracle觸發器
- 數位電路中的觸發器觸發器
- sql server中巢狀事務*SQLServer巢狀
- SQL Server 中的 ACID 屬性SQLServer
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- 最大似然分類器
- SQL Server 中的一些概念SQLServer
- SQL Server中的版本號如何理解SQLServer
- 如何SQL Server中檢視對映網路驅動器NASQLServer
- ping 多臺伺服器並在類似 top 的介面中顯示伺服器
- SQL Server中的日期和時間:DATEADD()SQLServer
- SQL Server 中將字串按數字排序SQLServer字串排序
- 淺談SQL Server中的快照問題SQLServer
- mysql中substring_index類似split分組功能MySqlIndex
- 在鴻蒙中實現類似瀑布流效果鴻蒙
- MySQL與SQL的觸發器的不同寫法MySql觸發器
- 如何捕獲和記錄SQL Server中發生的死鎖SQLServer
- DbForge Studio for SQL Server入門教程:在表編輯器中建立表SQLServer
- oracle 觸發器,當一個表更新或插入時將資料同步至另個庫中的某個表中Oracle觸發器
- MySQL 06 mysql 如何實現類似 oracle 的 merge intoMySqlOracle
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- MySql/Oracle和SQL Server的分頁查MySqlOracleServer
- SQL Server AlwaysOn的Oracle等價技術SQLServerOracle
- SQL Server 2008中的行壓縮(上)JUSQLServer