由于注释导致的隐式游标转换

时间:2017-04-05 14:30:04

标签: sql-server types cursor odbc

我在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,初始注释足以使查询被视为批处理似乎很奇怪。

1 个答案:

答案 0 :(得分:0)