服务器Server1.数据库T_test1.表1
F_id F_code F_name F_state
1 001 aaaa 0
2 002 bbbb 0
3 003 cccc 0
4 004 dddd 0服务器Server2.数据库T_test2.表2
F_id F_code F_name F_state
用事务把表1的记录插入到表2中,同时把表1中成功插入了的记录的F_state改为1SET XACT_ABORT ON
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=server2;User ID=sa;Password=').test2.DBO.表2 (F_code,F_name)
select F_code,F_name from T_specif @@error=0
begin
update T_test1 set F_state=1
commit tran
end
else
begin
rollback tran
end
SET XACT_ABORT off
go
上面的语句总是把所有的记录都插入,这条件不知道怎么加,比如说我选择前两条记录插入到表2中,同时把表1的这两条记录的F_state改为1,其它记录不变,上面的语句把所有的记录都插入了,怎么做呢?
F_id F_code F_name F_state
1 001 aaaa 0
2 002 bbbb 0
3 003 cccc 0
4 004 dddd 0服务器Server2.数据库T_test2.表2
F_id F_code F_name F_state
用事务把表1的记录插入到表2中,同时把表1中成功插入了的记录的F_state改为1SET XACT_ABORT ON
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=server2;User ID=sa;Password=').test2.DBO.表2 (F_code,F_name)
select F_code,F_name from T_specif @@error=0
begin
update T_test1 set F_state=1
commit tran
end
else
begin
rollback tran
end
SET XACT_ABORT off
go
上面的语句总是把所有的记录都插入,这条件不知道怎么加,比如说我选择前两条记录插入到表2中,同时把表1的这两条记录的F_state改为1,其它记录不变,上面的语句把所有的记录都插入了,怎么做呢?
解决方案 »
- 同一张表中:有两个字段相等,将另一个字段的值相加--迷茫中
- 急~~~关于msde安装和登陆的问题,在线等~(搞了一天了都不能解决)
- sql 2005和sql 2000的问题
- 怎么从XML数据表中按条件查询
- 求助:从“商品访问记录表”生成“商品关联关系表“的算法。
- >请问:在WIN中控制面板--管理--ODBC当中,系统DNS与用户的DNS,有什么不一样?<
- {EBDBD22F-1245-422C-BAED-ADB960838C3A}这样的是什么编码?
- 请问如何判断记录被锁定?
- [急切]Sql Server中在Function中调用存储过程返回表类型的问题
- 有几个简单的问题:能否帮我看一下,Access与SQL Server的比较:
- 热心人请帮我看一下
- ========如何用SQL插入带单引号的字符串???========
SET XACT_ABORT ON
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=server2;User ID=sa;Password=').test2.DBO.表2 (F_code,F_name)
select F_code,F_name from T_test1if @@error=0
begin
update T_test1 set F_state=1
commit tran
end
else
begin
rollback tran
end
SET XACT_ABORT off
go
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=server2;User ID=sa;Password=').test2.DBO.表2 (F_code,F_name)
select top 2 1,F_name from T_test1if @@error=0
begin
update T_test1 set F_state=1
commit tran
end
else
begin
rollback tran
end
SET XACT_ABORT off
go
begin tran
insert into OPENDATASOURCE ('SQLOLEDB','Data Source=server2;User ID=sa;Password=').test2.DBO.表2 (F_code,F_name)
select F_code,F_name from T_test1
update T_test1 set F_state=1
commit tran
SET XACT_ABORT off