有沒有什麼方法可以找出是否插入新的記錄,而不是在sql server 2005中寫入觸發器(它可以是tsql或java ...) 由於供應商是不允許正確觸發那裏DB ... 也如何生成一個文件與新插入的行數據..是bcp一個很好的解決方案??SQL Server 2005知道新記錄被插入
回答
我會建議一個最佳實踐,可能也會幫助你在這裏。如果限制更新和插入僅通過存儲過程,則可以使用該過程寫出審計記錄或僅更新時間/日期字段。
該表是否具有自動增量主鍵或createDate列?您可以編寫定期喚醒的cron作業,並查詢自上次運行cron作業以來是否有新的命中數據庫。
CDC會幫忙?我在2008年獲得鏈接和教程,但我正在使用SQL Server 2005 .... – paramupk 2012-02-15 03:26:29
您可以定義一個審計表,然後將OUTPUT命令添加到您的INPUT或UPDATE語句(DELETE也是,btw)。
create table fab4 (id int identity(1,1),FName varchar(80));
create table fab4_audit (act varchar(10),id int, FName_old varchar(80), FName_new varchar(80), ts datetime not null default(getdate()));
-- insert
insert into fab4(FName)
output
'INSERTED'
, inserted.*
into fab4_audit([act],id,FName_new)
select 'John' union all
select 'Paul' union all
select 'George' union all
select 'Ringo';
go
-- update
update f
set FName='Walrus'
output
'UPDATED'
, inserted.id
, deleted.FName
, inserted.FName
into fab4_audit([act],id,FName_old,FName_new)
from fab4 f
where FName='Paul';
-- delete
delete f
output
'DELETED'
, deleted.id
, deleted.FName
into fab4_audit([act],id,FName_old)
from fab4 f
where FName in ('John','George');
go
select * from fab4;
select * from fab4_audit;
go
我想你需要定義「有沒有什麼辦法來確定是否插入新的記錄,而不是寫入觸發器」。觸發器基本上是SQL中的事件處理程序。那麼你是否想要有一種觸發器,只要將新行插入到表中就會觸發?如果是這樣,答案是肯定的,它被稱爲SQL Server通知服務。
這裏是beginners article,但我相信你可以只是谷歌「SQL服務器通知」,並得到噸的結果。
這是另一篇好文章:Using SqlDependency To Monitor SQL Database Changes
CDC將幫助?我在2008年獲得鏈接和教程,但我正在使用sql server 2005. – paramupk 2012-02-20 11:19:18
這是SqlDependency for 2005/VS2005的一個。 http://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events – 2012-02-21 15:42:46
- 1. 在SQL Server中插入新記錄
- 2. SQL Server 2005批量更新或插入
- 3. SQL Server 2005 - 使用OpenXML插入記錄與分隔字符串
- 4. SQL Server 2005:需要基本的插入/記錄邏輯幫助
- 5. 如何從Vb.net插入多個記錄到SQL Server 2005表?
- 6. SQL Server 2005插入圖像
- 7. 插入到SQL Server 2005中
- 8. 重新插入IDENTITY插入SQL Server中的記錄
- 9. 如何在SQL Server 2005中插入(更新或插入)
- 10. 在SQL Server中插入違規記錄
- 11. 插入記錄使用SQL Server 2012
- 12. XML到SQL SERVER記錄插入
- 13. 在SQL Server中插入批量記錄
- 14. SQL Server - 插入新記錄後如何更新ID列
- 15. 在SQL Server中插入新記錄並更新現有記錄存儲過程
- 16. SQL Server 2005中的標誌記錄
- 17. 從SQL Server 2005 Express Edition導出記錄
- 18. SQL Server 2005表變更歷史記錄
- 19. SQL Server 2005 - 大容量插入問題
- 20. SQL Server 2005 - 批量插入失敗
- 21. 在MS SQL Server 2005中插入IGNORE?
- 22. 批量插入到SQL Server 2005中
- 23. Sql Server 2005 - 插入如果不存在
- 24. SQL Server 2005的批量插入
- 25. 在SQL Server 2005中批量插入?
- 26. SQL Server 2005與外鍵衝突插入
- 27. 批量插入到SQL Server 2005問題
- 28. Sql Server 2005 - 插入更新觸發器 - 獲取更新,插入行
- 29. 記錄插入到SQL Server中記錄到表2差源
- 30. 如何在SQL Server中記錄插入,更新?
時間戳是不夠的?或者是一個標誌:'new_from_last_check位默認0' – danihp 2012-02-11 20:13:50