SQL Server 2005 查询使用 ?在 SQL Server 2012 中不起作用
SQL Server 2005 query uses ? which doesn't work in SQL Server 2012
我正在开发一个查询 SQL 服务器上的实时数据的应用程序。用户在“% %”标记内输入名称进行搜索。 IE。如果用户要搜索 属性 的所有者,例如 Noble,他们将输入 %noble%。
我们最近将应用程序和存储数据的 SQL 服务器从 SQL Server 2005 升级到 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 以来是否发生了变化?
那是因为你的语法不正确。您必须使用参数而不是问号。类似于:
SELECT aurtvalm.pcl_num
FROM aurtvalm
INNER JOIN rtpostal ON aurtvalm.ass_num = rtpostal.ass_num
WHERE rtpostal.fmt_nm2 like @param
我正在开发一个查询 SQL 服务器上的实时数据的应用程序。用户在“% %”标记内输入名称进行搜索。 IE。如果用户要搜索 属性 的所有者,例如 Noble,他们将输入 %noble%。
我们最近将应用程序和存储数据的 SQL 服务器从 SQL Server 2005 升级到 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 以来是否发生了变化?
那是因为你的语法不正确。您必须使用参数而不是问号。类似于:
SELECT aurtvalm.pcl_num
FROM aurtvalm
INNER JOIN rtpostal ON aurtvalm.ass_num = rtpostal.ass_num
WHERE rtpostal.fmt_nm2 like @param