SQLServer 創建觸發器,更新表

在SQLServer,觸發器,插入、更新、刪除狀態: CREATE TRIGGER t_inms_alarms

ON [PHS].[dbo].[AlarmCurrent]

FOR INSERT, DELETE

AS

DECLARE @rows int

SELECT @rows = @@rowcount

IF @rows = 0

return

--如果表是插入,則同步更新AlarmsMiddleTbl

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)

BEGIN

INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl]

SELECT i.[Id], i.[SequenceId], i.[code], i.[alarmdefineid],

CONVERT(varchar,i.[occurTime],120), i.[confirmation], i.[ConfirmationTime],

i.[MaintenanceName], i.[MaintenanceProcedure],

i.[ClearTime], i.[screen],CONVERT(varchar, getdate(), 120)

FROM inserted i

END

--如果表是更新某個字段,則同步更新AlarmsMiddleTbl

IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted) AND

UPDATE(ConfirmationTime)

BEGIN

INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl]

SELECT d.[Id], d.[SequenceId], d.[code], d.[alarmdefineid],

CONVERT(varchar,d.[occurTime],120), d.[confirmation], d.[ConfirmationTime],

d.[MaintenanceName], d.[MaintenanceProcedure],

CONVERT(varchar, getdate(),120), d.[screen],CONVERT(varchar, getdate(), 120)

from deleted d

END

--如果表是刪除,則同步更新AlarmsMiddleTbl

IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)

BEGIN

INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl]

SELECT d.[Id], d.[SequenceId], d.[code], d.[alarmdefineid],

CONVERT(varchar,d.[occurTime],120), d.[confirmation], d.[ConfirmationTime],

d.[MaintenanceName], d.[MaintenanceProcedure],

CONVERT(varchar, getdate(),120), d.[screen],CONVERT(varchar, getdate(), 120)

from deleted d

END

IF @@error <> 0

BEGIN

RAISERROR('ERROR',16,1)

rollback transaction

return

END

創建觸發器
  創建觸發器前應考慮下列問題:  CREATE TRIGGER 語句必須是批處理中的第一個語句。將該批處理中隨後的其它所有語句解釋爲 CREATE TRIGGER 語句定義的一部分。  創建觸發器的權限默認分配給表的所有者,且不能...查看完整版>>創建觸發器
 
sqlserver如何識別真實和自動創建的索引
  問:我發現sysindexes索引表中的很多條目並不是我自己創建的。聽說它們並不是真正的索引,而是SQL Server查詢優化器自動創建的統計。怎樣才能識別哪些是真正的索引,哪些是SQL Server自動創建的統計呢?  答:...查看完整版>>sqlserver如何識別真實和自動創建的索引
 
SQL工作流模板實例化向導創建SQLServer登錄
  如果您正在使用其它小組或在其它位置創建的模板,您可能必須爲要使用新應用程序的用戶添加 SQL Server 登錄。因此,有了該向導,您就可以創建 SQL Server 登錄、將這些登錄指派爲數據庫用戶,以及爲他們指派角色...查看完整版>>SQL工作流模板實例化向導創建SQLServer登錄
 
SqlServer的更新鎖(UPDLOCK)
  UPDLOCK  讀取表時使用更新鎖,而不使用共享鎖,並將鎖一直保留到語句或事務的結束。UPDLOCK 的優點是允許您讀取數據(不阻塞其它事務)並在以後更新數據,同時確保自從上次讀取數據後數據沒有被更改。  這是...查看完整版>>SqlServer的更新鎖(UPDLOCK)
 
使DataAdapter自動創建更新語句
使DataAdapter自動創建更新語句 前頭的那個我不小心將問號刪去了. 做這個用了一天時間,比較倉促,還沒有全面檢驗過。 使用過程中如發現不足之處,請在我的BLOG上留一句話。 BLOG:http://blog.csdn.net/lzmtw ...查看完整版>>使DataAdapter自動創建更新語句
 
使DataAdapter自動創建更新語句
使DataAdapter自動創建更新語句 前頭的那個我不小心將問號刪去了. 做這個用了一天時間,比較倉促,還沒有全面檢驗過。 使用過程中如發現不足之處,請在我的BLOG上留一句話。 BLOG: Public NotInheritable Cla...查看完整版>>使DataAdapter自動創建更新語句
 
表同步更新的問題的觸發器(SQLSERVER)
摘要:表同步更新的問題的觸發器(SQLSERVER)sql server 2000 觸發器,表同步更新的問題 有三個表,A ,B,CA、B表中含有: A1,B1,C1 三個字段,C 表中存放A、B表中的A1、B1、C1 的集合,字段類型都爲nvarchar(10),當表A的...查看完整版>>表同步更新的問題的觸發器(SQLSERVER)
 
兩個sqlserver存儲過程,一個觸發器
  1. 備份日志, 避免日志過快增長 no_log / trancate_only  BACKUP LOG realnew_DATA WITH NO_LOG  DBCC SHRINKDATABASE(realnew_DATA ,TRUNCATEONLY)  BACKUP LOG realnew_DATA WITH Truncate_ONLY  BAC...查看完整版>>兩個sqlserver存儲過程,一個觸發器
 
DBA:在生産環境中創建監控表DML的觸發器
在生産環境中,總是可能出現這樣的情況:某張或者某些表的數據被莫名其妙的修改了,但是很難定位出是哪個用戶、哪個過程修改的。這是一個很讓DBA頭痛的事情(往往DBA對于整個代碼邏輯並不是非常了解)。要定位出“問...查看完整版>>DBA:在生産環境中創建監控表DML的觸發器
 
 
回到王朝網路移動版首頁