Table of Contents
SQL Server Error : 16943 Details
SQL Server Error: 16943
Severity: 16
Event Logged or not: No
Description:
Could not complete cursor operation because the table schema changed after the cursor was declared.
Severity 16 Description:
Indicates general errors that can be corrected by the user.
The message 16943 Could not complete cursor operation because the table schema changed after the cursor was declared.
Reading sql server error log location from SQL Query
Identifying SQL Server Error Log File used by SQL Server Database Engine can be done by reading SQL Server Error Logs. DBA can execute the XP_READERRORLOG extended stored procedure to read the SQL Server Error Log and search for its location used by the instance of SQL Server.
USE master
Go
xp_readerrorlog 0, 1, N'Logging SQL Server messages in file', NULL, NULL, N'asc'
Go
For other ways to read and find error log location please our article https://sqlserver-dba.co.uk/error-log/sql-server-identify-location-of-the-sql-server-error-log-file.html
Solution for Resolving the Error
Error message when you try to retrieve rows from a cursor that uses the OPTION (RECOMPILE) query hint in SQL Server 2005: “Could not complete cursor operation because the table schema changed after the cursor was declared”
Try setting your cursor to LOCAL STATIC FORWARD ONLY explicitly.
I’m not sure what particular changes are happening on your linked servers, or what that stored procedure is touching, but static copies the data such that the cursor isn’t affected (or cares about) by any of them.
This is the same problem that causes sp MSforeachdb to skip databases. They employ the incorrect cursor there, and databases that have been touched in any manner since the cursor opened are discreetly skipped owing to error handling.
SQL Server Error Code and solution summary
SQL Server Error: 16943
Severity: 16
Event Logged or not: No
Description:
Could not complete cursor operation because the table schema changed after the cursor was declared.