gpt4 book ai didi

java - Sql server 2005知道插入了新记录

转载 作者:行者123 更新时间:2023-12-01 15:33:37 26 4
gpt4 key购买 nike

除了在sql server 2005中编写触发器之外,还有什么方法可以查出是否插入了新记录。(可以是tsql,也可以通过java...)由于供应商不允许在数据库上正确触发...另外如何生成包含新插入行数据的文件..bcp 是一个好的解决方案吗?

最佳答案

您可以定义一个审核表,然后将 OUTPUT 命令添加到 INPUT 或 UPDATE 语句(顺便说一句,DELETE 也是如此)。

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

关于java - Sql server 2005知道插入了新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com