Referencing data from another server in a Cursor

Hi all

I have a stored procedure which sets a cursor for data on a remote server.  this is how I set the Cursor

declare data scroll cursor
   for select ltrim(rtrim(emplid)) as emplid, convert(int,emplid) as empid, ltrim(rtrim(company)) as company, ltrim(rtrim(Last_name)) as Last_name, ltrim(rtrim(preferred_name)) as Preferred_name, ltrim(rtrim(name)) as [name], ltrim(rtrim(log_unit_cd)) as log_unit_cd, ltrim(rtrim(log_division_cd)) as log_division_cd, ltrim(rtrim(employee_status)) as employee_status, ltrim(rtrim(location)) as location from GPS5A.warehouse.dbo.Pims_interface where ltrim(rtrim(company)) = 'LUK' or ltrim(rtrim(company)) = 'LGC' or ltrim(rtrim(company)) = 'LUH' order by emplid


When I run the code I get the following error.....

Server: Msg 16953, Level 16, State 1, Procedure sp_update_staff_table_live, Line 54
Updatable keyset cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level.



How can I resolve this?

demmickAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
nigelrivettConnect With a Mentor Commented:
The insensitive cursor is a snapshot so should get all the data onto the local server like the temp table (but more restrictive in processing terms as I pointed out). It's worth checking - if it doesn't then it's probably not a good idea to use it (but then it's never a good idea to us a cursor on a relational database).
0
 
nigelrivettCommented:
Do you need to hold the cursor open on the remote table?
It have a lot less impact on the system and be safer if you could select the data into a temp table on the local server and work on that.
0
 
demmickAuthor Commented:
No I don't need to keep it open on a remote table but if I create the temp table would it not slow down the sp?
0
Build your data science skills into a career

Are you ready to take your data science career to the next step, or break into data science? With Springboard’s Data Science Career Track, you’ll master data science topics, have personalized career guidance, weekly calls with a data science expert, and a job guarantee.

 
nigelrivettCommented:
Not a lot I doubt - it has to transfer the data from the remote server and you are using a cursor - anything else slowing things down is unlikely to be noticed above these.

Main advantage of the temp table over the cursor is that you are not forced to perform everything on a single row at a time.
0
 
demmickAuthor Commented:
I have just chnaged the cursor type to INSENSITIVE and so far it seems to run.  If its successful then I will let u know
0
 
MoondancerCommented:
demmick--->  Please update and finalize all your open questions.  If you need help in terms of splitting points, just comment with details or post a zero point question in the Community Support topic area with the link to the question and details.

Expert input is always welcome to determine the fair outcome of abandoned questions; such as this, if it remains "unattended" by asker for one more week.

Thank you,

Moondancer
Community Support Moderator @ Experts Exchange
0
 
MoondancerCommented:
Your responsiveness here is very much appreciated.
:)
Moondncer
Community Support Moderator @ Experts Exchange
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.