sql server 2005使用链接服务器远程插入数据, 出现插入失败但实际已插入, 以及插入时无报错但实际未插入的情况 链接服务器数据库sql server 2005MS-SQL 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用游标一条一条的插的话,可以用@@ROWCOUNT>0来判断影响行数的。另外你这个有时候能插入成功是因为你事务并没有完全回滚在事务前面加上SET XACT_ABORT ON 试试。 使用事务也会这样吗SET XACT_ABORT ON 谢谢fredrickhu的回复, 也谢谢lizhongheng.@@ROWCOUNT提醒我了, 之前都没想过用这个, 刚试了下, 即使是链接服务器, 用@@ROWCOUNT>0来判断也是可以的.另外我不能使用事务, 可能是分布式事务的关系, 我在insert或delete一行时使用事务时会锁整个表. 本帖最后由 wufeng4552 于 2014-04-01 15:24:04 编辑 使用分布式事务insert 或者delete时锁定整个表 是由于你使用游标的造成的是否可以不使用游标 非用游标不可?建议不要在游标中向链接服务器插数据,而是在本地建临时表,游标循环插入完成后,再从临时表插入链接服务器 哦, 原来是这样啊. 是这样的, 我是从临时表插到远程目标表, 为了不一次性插入太多的数据, 且插入成功后就把已经插入过的数据删除, 所以才用了游标, 如果不用游标的话, 那该怎么做好点?难道我要建立2张临时表, td_data_send1、td_data_send2,先把 td_data_send1中的一定数量的数据导到td_data_send2, 然后将td_data_send2的数据插入到远程目标表, 如果成功, 则同时删除 td_data_send1和td_data_send2这部分数据? 每次处理的数据量如果不是很大试试这样delete from 本地表output deleted.* into 远程表where 条件 包含left join的sql语句,count统计记录数好像非常耗时间 基表中创建索引,对视图有影响吗? msde拔出网线不能连接的问题 【求助】sqlserver2000的死锁问题 datetime,昨天没有解决的问题,大家帮我看看,我是个新手谢谢 请问创建好的触发器在什么地方可以看的到? MySQL提示1135-Can't create a new thread (errno12) 为什么单独执行语句没错,调用存储过程就出错 大力啊,很急的问题。关于数据库联接的。触发器和存储过程都不起效果了。!大虾们帮帮忙。 关于DELPHI访问数据库的一个简单问题 请问,用insert向图表中插入多条记录后,如何得到刚刚插入的这些记录?谢谢! 聚集索引与非聚集索引使用情况的疑问
@@ROWCOUNT提醒我了, 之前都没想过用这个,
刚试了下, 即使是链接服务器, 用@@ROWCOUNT>0来判断也是可以的.另外我不能使用事务, 可能是分布式事务的关系, 我在insert或delete一行时使用事务时会锁整个表.
insert 或者delete时锁定整个表 是由于你使用游标的造成的
是否可以不使用游标 非用游标不可?
建议不要在游标中向链接服务器插数据,而是在本地建临时表,游标循环插入完成后,再从临时表插入链接服务器
是这样的, 我是从临时表插到远程目标表, 为了不一次性插入太多的数据, 且插入成功后就把已经插入过的数据删除, 所以才用了游标, 如果不用游标的话, 那该怎么做好点?难道我要建立2张临时表, td_data_send1、td_data_send2,
先把 td_data_send1中的一定数量的数据导到td_data_send2,
然后将td_data_send2的数据插入到远程目标表,
如果成功, 则同时删除 td_data_send1和td_data_send2这部分数据?
试试这样
delete from 本地表
output deleted.* into 远程表
where 条件