# [SQL Server]判斷觸發程序
###### tags: `SQL Server` `SQL` `database`
> [time= 2019 11 07 ]
> 原文 & 參考:
> https://dotblogs.com.tw/dc690216/2009/09/10/10553
<br>
當 Insert 時,除了將資料新增到資料表中外,在 INSERTED 中,也會保留資料。
Delete 時,也會將資料在 Deleted 中保留。
Update 的運作,是先將資料表中的資料先刪除再新增,所以在 INSERTED 中,會記錄新資料的記錄,而在 DELETED 會保留舊的記錄。
所以,應該就了解要如何判斷,現在的 Trigger 是在 Insert、Update 或 Delete 了。
```sql=
CREATE TRIGGER dbo.使用者資料觸發程序
ON dbo.使用者資料
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
if (Select Count(*) From inserted) > 0 and (Select Count(*) From deleted) = 0
begin
print ('新增')
end
if (Select Count(*) From inserted) = 0 and (Select Count(*) From deleted) > 0
begin
print ('刪除')
end
if (Select Count(*) From inserted) > 0 and (Select Count(*) From deleted) > 0
begin
print ('修改')
end
END
GO
```
<br>
取得最新增加到該資料表欄位的資料
則用以下的語法
```sql=
select 欄位名稱 from Inserted
```