1. 程式人生 > >獲取SQL SERVER delete 觸發器 觸發前的值

獲取SQL SERVER delete 觸發器 觸發前的值

1、觸發器觸發時:
   a、系統自動在記憶體中建立deleted表或者inserted表
  b、只讀,不允許修改;觸發器執行完成後,自動刪除
2、inserted表
a、臨時儲存了插入或更新後的記錄行
b、可以從inserted表中檢查插入的資料是否滿足業務需求
c、如果不滿足,則向用戶報告訊息錯誤,並回滾插入操作
3、deleted表
a、臨時儲存了刪除或更新前的記錄行
b、可以存deleted表中檢查刪除的資料是否滿足業務
c、如果不滿足,則向用戶報告錯誤訊息,並回滾插入操作
4、關於inserted與deleted表的說明

SQL <wbr>SERVER觸發器應用案例講解(deleted表或者inserted表)

畢業設計中觸發器使用例項:

CREATE TRIGGER [dbo].[dropScoreTableFromExamDbWhenAnExamDeleted]  ON [dbo].[tExams]  AFTER DELETE 
AS
BEGIN
	
	DECLARE @tableName VARCHAR(100)
	SELECT @tableName = tableName FROM DELETED    
	DECLARE @sql VARCHAR(1000)
	SET @sql ='DROP TABLE Exam.dbo.'
[email protected]
EXEC(@sql) END


相關推薦

獲取SQL SERVER delete 觸發器 觸發

1、觸發器觸發時:    a、系統自動在記憶體中建立deleted表或者inserted表   b、只讀,不允許修改;觸發器執行完成後,自動刪除 2、inserted表 a、臨時儲存了插入或更新後的記錄行 b、可以從inserted表中檢查插入的資料是否滿足業務需求 c、

SQL Server 創建帶返回的存儲過程

AR char cmd esql argument lex class 過程 null --drop procedure zcstest; create procedure zcstest ( @tableName varchar(max), @dataC

SQL Server DDL觸發器

用戶名 eat exists lar value back ref tro get DDL 觸發器作用: DDL 觸發器主要用於防止對數據庫架構、視圖、表、存儲過程等進行的某些修改。 DDL 觸發器事件: DDL 觸發器在創建用來監視並響應該數據庫或服務器實例中的活動的

C#語言和SQL Server資料庫技術_四章錯題

  1。在C#中,如果讓某個方法只能被它所在的程式集內的其他方法訪問,可使用(C)修飾這個方法。 (選擇一項) A:private B:protected C:internal D:以上都不對 2.下列關於String.Format()用法不正確的是(B)

SQL SERVER-10-觸發器|遊標|動態sql

1.觸發器 --可以理解為一個特殊的儲存過程,在某一個動作執行的時候,自動執行,而不需要人手動執行 --觸發器的分類 --1.DML觸發器 --insert,delete,update(不支援select) --after觸發器,instead of 觸發器(相當於其他資

SQL Server資料庫——觸發器的建立

create trigger trigger_sage on student after insert,update as if exists (select * from inserted where sage not between 15 and 45) begin print '插入學生年齡不在15~4

SQL Server DDL觸發器運用

一.本文所涉及的內容(Contents) 二.背景(Contexts)   說到觸發器,大家都會想到這樣的使用場景:當一個表的資料修改了,運用DML觸發插入或者更新到其它表中;那DDL觸發器(SQL Server 2005引入的新功能)會運用到什麼場景中呢?本文將為你講述4種運用DDL觸發器的場景:

如何獲取SQL Server所有的資料庫名、表名、欄位名及欄位型別?

解決方案 – 獲取所有資料庫名 select name from master..sysdatabases – 獲取所有表名 select name from YDK..

如何獲取SQL Server資料庫裡表的佔用容量大小(轉)

 其實只要使用系統內建的儲存過程sp_spaceused就可以得到表的相關資訊如:sp_spaceused 'tablename' 以下是為了方便寫的一個儲存過程,目的是把當前的所有表的相關資訊全部都儲存在一個指定的表裡面CREATEPROCEDURE get_tablein

C# 如何獲取SQL Server 中指定資料表的所有欄位名和欄位型別

如何獲取指定資料表的所有欄位名和欄位型別。SqlConnection.GetSchema方法有2個過載形式,獲取指定資料表的所有欄位名和欄位型別的祕密就在GetSchema (String, String[])的第二個引數中。 定義如下: public override DataTable GetS

SQL獲取SQL Server 根據表名獲取表的所有列及屬性

select     c.name as [欄位名],t.name as [欄位型別]     ,convert(bit,c.IsNullable)  as [可否為空]     ,convert(bit,case when exists(select 1 from sysobjects where xty

sql server中分組合並列

表a 我們想讓班級相同的合併成一列查出Name SELECT Class,STUFF( ( SELECT ','+ Name FROM a b WHERE b.Class = a.Class

sql server 呼叫儲存過程返回

1.OUPUT引數返回值 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int , @o_id bigint OUTPUT )AS BEGIN SET NOCOUNT ON; BEGIN INSERT

SQL Server觸發器詳解

1. 概述2. 觸發器的分類3. Inserted和Deleted表4. 觸發器的執行過程5. 建立觸發器6. 修改觸發器:7. 刪除觸發器:8. 檢視資料庫中已有觸發器:9. “Instead of”相關示例:10. “After”觸發器11. 參考資源1. 概述觸發器是一

C# 獲取SQL Server所有的資料庫名稱

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; u

SQL Server 欄位設定預設

1. 如果表字段已經建好 ALTER   TABLE   表名  ADD   CONSTRAINT   DF_TABLEName_FieldName   DEFAULT   1   FOR   欄位名 2. 如果表字段沒有建 alter table 表名 add 欄位名

2.SQL Server DML觸發器之COMMIT和ROLLBACK TRANSACTION

14.1.2 COMMIT和ROLLBACK TRANSACTION 當執行能夠激發觸發器操作的語句時,觸發器中的操作也將包含在該語句的事務處理過程中。即使在SQL Server的自動事務處理模式下,也是如此。在自動事務處理模式下,當語句遇到錯誤時,會有隱含的BEGIN

SQL Server下ADO.NET 怎麽獲取數據庫SQL語句INSERT,UPDATE,DELETE了多少行數據

查詢 行數據 cit per 數據庫連接 into div conn 影響 ADO.NET 在發送SQL語句到SQL Server數據庫後,怎麽知道真正INSERT,UPDATE,DELETE了多少行數據呢? 使用SQL Server內置的全局變量@@ROWCOUNT即可

Yii2.0呼叫sql server儲存過程並獲取返回

1、首先展示建立sql server儲存過程的語句,建立一個簡單的儲存過程,測試用。 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[register_info]

Sql Server 觸發器Update、Insert、Delete

什麼是觸發器 在SQL Server裡面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是一個特殊的儲存過程。 常見的觸發器一共有三種 Insert, Update,Delete