Silvern
Silvern

Reputation: 23

SQL Server 2005 query uses ? which doesn't work in SQL Server 2012

I'm working on an application which queries live data on SQL Server. The user enters a name within '% %' marks to search. Ie. if the user was to search for the owner of a property such as Noble, they would enter %noble%.

We recently upgraded both the application and the SQL Server that stores the data from SQL Server 2005 to SQL Server 2012.

The existing query and the new query are identical:

SELECT aurtvalm.pcl_num 
FROM aurtvalm 
INNER JOIN rtpostal ON aurtvalm.ass_num = rtpostal.ass_num
WHERE rtpostal.fmt_nm2 LIKE ?

In the old version, the above query produces 16 results. The exact same query in 2012 version produces an error:

Incorrect Syntax near '?'

Has the use of the ? symbol changed since SQL Server 2005?

Upvotes: 2

Views: 54

Answers (1)

That because you have incorrect syntax. You have to use parameter instead of question mark. Something like:

SELECT aurtvalm.pcl_num 

FROM aurtvalm 
INNER JOIN rtpostal ON aurtvalm.ass_num = rtpostal.ass_num

WHERE rtpostal.fmt_nm2 like @param

Upvotes: 2

Related Questions