定义服务器游标的属性 将远程表上的数据复制到本地
在本地服务器上,我用了一个 数据库链接 连接到 远程服务器。由于需要将远程表上的一些数据更新到本地服务器上,我写了一个sp。执行这些语句的时候,虽然数据已经成功抄下来,但会提示出错,如果用计划任务执行的话是不会成功的。
错误提示:远程表不可更新。远程表上的可更新键集驱动游标要求事务具有扫过游标的 REPEATABLE_READ 或 SERIALIZABLE 隔离级别。
(Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor.)
这种错误是什么原因导致的呢,原因就是远程表上的游标不可更新。解决办法 1 如下:
附:
sqlserver帮助里面的相关帮助。
declare mcursor cursor for
select branch_code from [192.168.3.51].dbname.dbo.table where obsoleted = 'F'
open mcursor
close mcursor
deallocate mcursor
select branch_code from [192.168.3.51].dbname.dbo.table where obsoleted = 'F'
open mcursor
close mcursor
deallocate mcursor
错误提示:远程表不可更新。远程表上的可更新键集驱动游标要求事务具有扫过游标的 REPEATABLE_READ 或 SERIALIZABLE 隔离级别。
(Remote tables are not updatable. Updatable keyset-driven cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level spanning the cursor.)
这种错误是什么原因导致的呢,原因就是远程表上的游标不可更新。解决办法 1 如下:
declare INSENSITIVE mcursor cursor for
select branch_code from [192.168.3.51].dbname.dbo.table where obsoleted = 'F'
open mcursor
close mcursor
deallocate mcursor
select branch_code from [192.168.3.51].dbname.dbo.table where obsoleted = 'F'
open mcursor
close mcursor
deallocate mcursor
附:
sqlserver帮助里面的相关帮助。
-
INSENSITIVE
-
定义一个游标,以创建将由该游标使用的数据的临时复本。对游标的所有请求都从 tempdb 中的这一临时表中得到应答;因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。使用 SQL-92 语法时,如果省略 INSENSITIVE,则已提交的(任何用户)对基础表的删除和更新都反映在后面的提取中。