数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在SQLServer2000中用链接数据库方式向Oracle8.17写记录的Trigger

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

创建链接数据库方式的步骤在这里不重复说明,很多地方都有资料!

CREATE TRIGGER TransferMTMessage ON [dbo].[T_DWS_MT_Message]
FOR INSERT
AS

    -- 必须设置这个选项目,否则出现 OLE DB 错误跟踪
    --[OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction returned 0x8004d013:  ISOLEVEL=4096
    --解决异构服务器的触发器 参考:http://support.microsoft.com/default.aspx?scid=kb;EN-US;280106
    SET XACT_ABORT ON  

    Declare @Seq int
    Declare @LinkID varchar(20)
    Declare @Content varchar(140)
    Declare @Mobile  varchar(20)
  
    --Step1: 从Oracle数据库获取一个序列的nextval
    Select @Seq=(Select * from openquery(hnoracle,'Select Seq.nextval From dual'))

    --Step2: 获取新插入的数据
    Select @LinkID=LinkID From INSERTED
    Select @Content=SMS_Content From INSERTED
    Select @Mobile=MT_Mobile From INSERTED


    --Step3:将数据通过链接数据库写进Oracle数据库
    INSERT INTO [hnoracle]..[HAILINE].[MTMESSAGE](MTMSGID,MTMOBILE,CONTENT,LINKID,STATUS,SENDTIME,SPFLAG)
       Values(@Seq, @Mobile, @Content, @LinkID,0,NULL,NULL)

    --Step4:删除本地SQLServer下行信息
    Delete From T_DWS_MT_Message Where ID IN( Select ID From INSERTED)

Return

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




相关文章

相关软件