日期:2014-05-18  浏览次数:20566 次

高分,求一触发器,SQL server 7.0上,50分
当tableA   表加入记录更新时,将该记录的内容导出到外部的文件d:\test.txt中,如何做阿

tableA

id   mtype     mk          
1       aa         123
2       bb         123

当增加记录
3     cc         234

时,需要导出到d:\test.txt中
并以字符串3/cc/234保存
谢谢各位了!




------解决方案--------------------
try:
1)新建文本文件d:\test.txt
2)触发器
create trigger tr_test on tableA
for insert
as
insert into opendatasource( 'microsoft.jet.oledb.4.0 ', 'Text;hdr=yes;database=d:\ ')...test#txt
select * from inserted
------解决方案--------------------
try:
1)新建文本文件d:\test.txt,并在第一行输入id,mtype,mk
2)测试数据
if object_id( 'tablea ') is not null drop table tablea
create table tablea(id int, mtype varchar(100),mk int)
insert tablea
select 1 , 'aa ', 123 union all
select 2 , 'bb ', 123
go
3)触发器
create trigger tr_test on tableA
for insert
as
set xact_abort on
begin
insert into opendatasource( 'microsoft.jet.oledb.4.0 ', 'Text;hdr=yes;database=d:\ ')...test#txt
select * from inserted
end
go
--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc ',no_output

insert tablea
select 3 , 'cc ', 234
------解决方案--------------------
但是在触发器中使用opendatasource会有麻烦
http://topic.csdn.net/t/20030317/14/1540549.html
------解决方案--------------------
最好写一个完成插入数据功能的存储过程,然后在这个存储过程完成数据导出吧,不要使用触发器
------解决方案--------------------
建议楼主将重新内容插入一个数据表更合适,