【发布时间】:2026-01-14 03:15:01
【问题描述】:
我正在开发一个查询 SQL Server 上实时数据的应用程序。用户在 '% %' 标记内输入名称以进行搜索。 IE。如果用户要搜索诸如 Noble 之类的财产的所有者,他们将输入 %noble%。
我们最近将应用程序和存储数据的 SQL Server 从 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 版本中完全相同的查询会产生错误:
'?' 附近的语法不正确
自 SQL Server 2005 以来,? 符号的使用是否发生了变化?
【问题讨论】:
-
道歉 - 我第一次发帖。
-
接受并删除了我的评论
-
你确定有问号吗?可能该语句是从某些代码中复制的?我不记得这样的语法...
-
是的,这绝对是一个问号。该应用程序以前在 SQL 2005 中使用了空间软件,也许这增加了额外的语法?问题已解决,应用程序的另一个组件声明了我需要的变量。原来 2005 年的旧版本没有这样做。
-
甚至 SQL Server 2005 也总是使用 命名参数 - 而不是
?作为其参数 - 类似于@searchterm或类似的东西。?与OleDbProvider一起使用,主要用于访问 MS Access 和其他 OleDB 数据库
标签: sql-server sql-server-2005 sql-server-2012