?
Solved

Error message returned with standard DELETE on SQL Server 2005 database restored in SQL Server 2012

Posted on 2014-12-12
7
Medium Priority
?
226 Views
Last Modified: 2015-01-29
I have come across an issue with executing DELETE statement in SQL Server 2012 in a database which has been restored
from SQL Server 2005 to SQL Server 2012,

This is the delete statement:

DELETE FROM [Table] WHERE Field1_ID='xxx'

I restored a SQL Server 2005 backup on to a new SQL Server 2012 server using the following restore command:

DECLARE @backupfile varchar(200)
SET @backupfile = 'E:\SQL_BACKUP\DB_FULL_20141211_182000.bak'

RESTORE DATABASE DB_T
   FROM DISK = @backupfile
   WITH
   MOVE 'DB_T_Data' TO 'D:\SQL_DATA\DB_T.mdf',
   MOVE 'DB_T_Log' TO 'E:\SQL_LOGS\DB_T.ldf'

The RESTORE message output indicated that 'upgrade' steps did occur as part of the restore.  

Also I did the following to actually change the compatability level, from 2005 to 2012  
ALTER DATABASE DB_T
SET COMPATIBILITY_LEVEL = 110;

I have seen some articles online which suggest that the compatability level is the root cause.

However, as I have indicated above, I have taken all steps to get the 2005 database to the 2012 compatibility level.

Please let me know if anyone has encountered anything similar.
0
Comment
Question by:Barry Cunney
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
7 Comments
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 40495965
and the error message is?
0
 
LVL 143

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 1000 total points
ID: 40495966
so far, guessing it's a trigger on the table that is trying to look up for some other db ...
0
 
LVL 51

Expert Comment

by:Vitor Montalvão
ID: 40495972
What is the error?
Also, since you migrated the database, any rebuild index ran?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 17

Author Comment

by:Barry Cunney
ID: 40496210
Hi,
The error message is as follows:
Msg 102, Level 15, State 1, Procedure TD_Table, Line 58 Incorrect syntax near '@ERRNO'.
0
 
LVL 51

Accepted Solution

by:
Vitor Montalvão earned 1000 total points
ID: 40496223
You didn't post your code but looks like you are using an old way to raise error in SQL Server. Didn't you run the Upgrade Advisor before migrating the database? This kind of incompatibilities can be discovered by the Upgrade Advisor.
Anyway, check the syntax in this MSDN article.
0
 
LVL 17

Author Comment

by:Barry Cunney
ID: 40533287
Hi Guys,
I just figured out the root cause.
The actual compatibility level of the database was 'SQL Server 2000'.
The database had resided on SQL Server 2005 and when a backup of this database was restored on SQL Server 2012, it showed the compatibility level as 'SQL Server 2005'.
However when I checked the compatibility level of this database on the SQL Server 2005 evironment, it showed 'SQL Server 2000' - so we thought we were restoring a 2005 database to 2012, but in actual fact we had restored a 2000 level database to 2012 and so it was not really upgraded, and so we did not get a valid 2012 database - and one of the fall outs of this was that a standard single line DELETE-> DELETE FROM [Table] WHERE Field1_ID='xxx'  gave the the error   'Msg 102, Level 15, State 1, Procedure TD_Table, Line 58 Incorrect syntax near '@ERRNO'.'

We are now in the process of getting this database validly upgraded to 2005/2008 level and then upgraded to 2012 level.
0
 
LVL 17

Author Comment

by:Barry Cunney
ID: 40533290
I will revert later and award points
0

Featured Post

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question