读书人

怎么同时向2个数据库中插入数据

发布时间: 2011-12-31 23:50:30 作者: rapoo

如何同时向2个数据库中插入数据?
求教,如何使用事务向不同数据库中插入数据?数据库为ORACLE

[解决办法]
使用Enterprise Libray:
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm1 = db.GetSqlStringCommand( "insert into issue1 () values () ");
DbCommand dbcomm2 = db.GetSqlStringCommand( "insert into issue2 () values() ");

using (DbConnection conn = db.CreateConnection())
{
//打开连接
conn.Open();
//创建事务
DbTransaction trans = conn.BeginTransaction();

try
{
db.ExecuteNonQuery(dbcomm1);

db.ExecuteNonQuery(dbcomm2);

//都执行成功则提交事务
trans.Commit();
}
catch(Exception)
{
//发生异常,事务回滚
trans.Rollback();
}
//关闭连接
conn.Close();

[解决办法]
在A-Oracle服务器上建立B服务器的连接,然后当A服务器插入数据的时候通过此连接对B数据库进行操作。
[解决办法]
两条插入语句同时执行,若有一条执行不成功,回滚。
[解决办法]
不知道,帮顶
[解决办法]
用触发器不行吗
[解决办法]
在A服务器上建立B服务器的连接,然后同时插入即可
如 a表在A服务器,b表在B服务器
B服务器在A服务器上的连接名为@lgl
那么在A服务器上插入这两张表:
insert into a (...) values (...)
insert into b@lgl(...) values (...)
[解决办法]
估计只有在一个表的触发器里,写另外一个数据库的表了,
写入失败就回滚。
[解决办法]
up
[解决办法]
为什么要在程序里面写呢
在一个数据库里面写个存储过程不就可以了吗

create proc p_XXX
as
begin tran
insert into table1()values()
insert into db2.dbo.table2()values();
commit tran

读书人网 >C#

热点推荐