各位老师好。
   我建立了一个游标,把远程服务器上的一个表赋给这个游标,但提示出错。游标如下:
  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 隔离级别。怎样解决这个问题,请指教。

解决方案 »

  1.   

    解决办法如下:  
       
      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,游标可以反映由当前用户所做的或由其他用户提交的数据修改。除使用只读游标外,可以使用游标进行定位更新。