我在C ++应用程序中使用ODBC连接到SQL Server 我对来自' DynamicServer'的简单SELECT查询意外地发生了隐式游标转换。 (以及任何服务器端odbc游标)仅限客户转发'
我最近意识到这是由于在查询开头写的评论(/ ** /或 - )。
我可以在SQL Server Native Client 11.0'上重现此行为。和SQL Server'
的' ODBC驱动程序13我们会发送这些评论,以便在服务器端轻松识别查询。 这是一个例子:
没有发生光标类型转换:
SELECT * from table_x
但是无法使用以下查询打开服务器游标
-- selectYY.sql
SELECT * from table_x
另外我注意到查询中间带有/ ** /的注释或查询后没有触发游标转换的注释
任何人都知道这里发生了什么? 这是预期的行为吗?
根据msdn,预期的行为是批量查询(带有多个语句的查询)被转换为ClientForwardOnly,初始注释足以使查询被视为批处理似乎很奇怪。