有没有什么方法可以找出是否插入新的记录,而不是在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