Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更改已关闭(但未解除分配)光标的选择_Mysql_Sql_Sql Server_Oracle_Cursor - Fatal编程技术网

Mysql 更改已关闭(但未解除分配)光标的选择

Mysql 更改已关闭(但未解除分配)光标的选择,mysql,sql,sql-server,oracle,cursor,Mysql,Sql,Sql Server,Oracle,Cursor,我发现这句话: 关闭光标后,程序可以再次打开它,这意味着 DBMS重新计算相同的查询或不同的查询,并 生成新的结果集。“ 您可以在SQL Server中执行此操作吗?我在Transact-SQL游标页面上未找到任何与此相关的内容 其他DBMS是否支持这种特性 FWIW。对于SQL Server CLOSE使数据结构可以重新打开,但会获取 在光标重新打开之前,不允许进行定位更新。 关闭必须在打开的光标上发出;上不允许关闭 仅已声明或已关闭的游标 语法 CLOSE { { [ GLOBAL ] cu

我发现这句话:

关闭光标后,程序可以再次打开它,这意味着 DBMS重新计算相同的查询或不同的查询,并 生成新的结果集。“

您可以在SQL Server中执行此操作吗?我在Transact-SQL游标页面上未找到任何与此相关的内容

其他DBMS是否支持这种特性

FWIW。对于SQL Server

CLOSE使数据结构可以重新打开,但会获取 在光标重新打开之前,不允许进行定位更新。 关闭必须在打开的光标上发出;上不允许关闭 仅已声明或已关闭的游标

语法

CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
参数

全球的

指定游标名称引用全局游标

游标名称

是打开的游标的名称。如果全局游标和本地游标都存在,且游标\名称作为其名称,则指定全局时,游标\名称指的是全局游标;否则,游标名称指的是本地游标

游标\变量\名称

与打开的游标关联的游标变量的名称。

FWIW。对于SQL Server

CLOSE使数据结构可以重新打开,但会获取 在光标重新打开之前,不允许进行定位更新。 关闭必须在打开的光标上发出;上不允许关闭 仅已声明或已关闭的游标

语法

CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
参数

全球的

指定游标名称引用全局游标

游标名称

是打开的游标的名称。如果全局游标和本地游标都存在,且游标\名称作为其名称,则指定全局时,游标\名称指的是全局游标;否则,游标名称指的是本地游标

游标\变量\名称


与打开的游标关联的游标变量的名称。

一般来说,首先不应该使用游标。它们有它们的位置,但它们非常罕见。你可以这样做。以Martin的例子,将第二个查询从sys.sysobjects更改为sys.sysindexes,你已经更改了原始结构。我感谢你的评论,Sean Lange,但它回答了一个不同的问题。我会记住的,谢谢!我明白了,所以您可以通过使用游标变量来实现。感谢马丁·史密斯和李·埃佛勒斯峰!但是,是否可以使用declare crs cursor声明服务器游标、处理其结果集、关闭它(而不是取消分配它)并更改其选择?一般来说,首先不应该使用游标。它们有它们的位置,但它们非常罕见。你可以这样做。以Martin的例子,将第二个查询从sys.sysobjects更改为sys.sysindexes,你已经更改了原始结构。我感谢你的评论,Sean Lange,但它回答了一个不同的问题。我会记住的,谢谢!我明白了,所以您可以通过使用游标变量来实现。感谢马丁·史密斯和李·埃佛勒斯峰!但是,是否可以使用declare crs cursor声明服务器游标、处理其结果集、关闭它(而不是取消分配它)并更改其SELECT?我的问题是,在关闭游标后但取消分配它之前,是否可以更改它的SELECT语句,即在游标的declare语句中使用的语句。我提供的链接清楚地表明这是可能的,但我没有找到在SQL Server中实现这一点的方法。我很好奇其他数据库管理系统是否支持这一点。我的问题是,在关闭游标之后,但在释放游标之前,您是否可以更改它的SELECT语句,即您在游标的DECLARE语句中使用的语句。我提供的链接清楚地表明这是可能的,但我没有找到在SQL Server中实现这一点的方法。我很好奇是否有其他数据库管理系统支持这一点。