各位老师好。
我建立了一个游标,把远程服务器上的一个表赋给这个游标,但提示出错。游标如下:
declare @ip varchar(50)
declare c1 cursor for
select dm from [192.168.65.23].qch.dbo.pinm1
/*
注:192.168.65.23为一个远程sql server服务器的IP地址
*/
open c1错误信息如下:
远程表不可更新。远程表上的可更新键集驱动游标要求事务具有扫过游标的 REPEATABLE_READ 或 SERIALIZABLE 隔离级别。怎样解决这个问题,请指教。
我建立了一个游标,把远程服务器上的一个表赋给这个游标,但提示出错。游标如下:
declare @ip varchar(50)
declare c1 cursor for
select dm from [192.168.65.23].qch.dbo.pinm1
/*
注:192.168.65.23为一个远程sql server服务器的IP地址
*/
open c1错误信息如下:
远程表不可更新。远程表上的可更新键集驱动游标要求事务具有扫过游标的 REPEATABLE_READ 或 SERIALIZABLE 隔离级别。怎样解决这个问题,请指教。
declare c1 INSENSITIVE cursor for
即加上 INSENSITIVE 关键字即可。
附:
游标的敏感性行为定义了对基行(用于建立游标)所做的更新是否对游标可见。敏感性也定义了能否通过游标进行更新。
如果在 Transact-SQL DECLARE 语句中指定了 INSENSITIVE 关键字,或在 ODBC 中将 SQL_ATTR_CURSOR_SENSITIVITY 设置为 SQL_UNSPECIFIED 或 SQL_INSENSITIVE,游标将不反映数据修改。游标为只读且不支持更新。
如果在 Transact-SQL DECLARE 语句中省略了 INSENSITIVE 关键字,或在 ODBC 中将 SQL_ATTR_CURSOR_SENSITIVITY 设置为 SQL_SENSITIVE,游标可以反映由当前用户所做的或由其他用户提交的数据修改。除使用只读游标外,可以使用游标进行定位更新。