SQL Server 2005查询使用?这在SQL Server 2012中无效

SQL Server 2005查询使用?这在SQL Server 2012中无效

问题描述:

我正在研究查询SQL Server上的实时数据的应用程序。用户在'%%'标记内输入名称进行搜索。 IE浏览器。如果用户要搜索诸如Noble之类的财产的所有者,他们将输入%noble%。SQL Server 2005查询使用?这在SQL Server 2012中无效

我们最近升级两个应用程序,并从SQL Server 2005中的数据存储到SQL Server在SQL Server 2012

现有的查询和新的查询是相同:

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

在旧版本中,上述查询产生16个结果。在2012年版的完全相同的查询产生一个错误:

Incorrect Syntax near '?'

已使用?符号,因为SQL Server 2005的改变?

+0

道歉 - 我第一次发布。 – Silvern

+0

接受并删除我的评论 – e4c5

+0

确定带问题?可能是从一些代码复制的声明?我不记得这样的语法... –

这是因为您的语法不正确。你必须使用参数而不是问号。例如:

SELECT aurtvalm.pcl_num 

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

WHERE rtpostal.fmt_nm2 like @param 
+0

此组件何时更改?旧版本的作品,但新的不,所以我认为它一定在某些时候已经改变。另外,这是否需要我声明@参数变量? – Silvern

+1

感谢您的帮助Stanislovas,您绝对会让我走上正确的轨道来解决这个问题。 – Silvern