Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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
下一次获取时出现TSQL游标错误-第二次执行时已修复_Sql_Sql Server_Tsql_Cursor - Fatal编程技术网

下一次获取时出现TSQL游标错误-第二次执行时已修复

下一次获取时出现TSQL游标错误-第二次执行时已修复,sql,sql-server,tsql,cursor,Sql,Sql Server,Tsql,Cursor,我正在SQL Server Management Studio 2012中运行一个脚本,其中包含一个游标。脚本将逐行遍历数据库表,并将数据合并到插入第二个数据库表的单行中。我相信光标是实现这一点的最佳方式 我有一个似乎与我的代码无关的问题,因为当它发生时,我唯一的解决方案就是简单地重新执行代码,错误不会再次发生 我已经指出了以下错误: FETCH NEXT FROM @theCursor INTO @variable, @anotherVariable, @etc... 将发生以下错误 无法完

我正在SQL Server Management Studio 2012中运行一个脚本,其中包含一个游标。脚本将逐行遍历数据库表,并将数据合并到插入第二个数据库表的单行中。我相信光标是实现这一点的最佳方式

我有一个似乎与我的代码无关的问题,因为当它发生时,我唯一的解决方案就是简单地重新执行代码,错误不会再次发生

我已经指出了以下错误:

FETCH NEXT FROM @theCursor INTO @variable, @anotherVariable, @etc...
将发生以下错误

无法完成游标操作,因为自声明游标后,集合选项已更改

同样,非常令人困惑的问题是,如果在出现此错误后重新运行脚本,则不会发生这种情况。我在数据库上创建了一个新查询,每次都会得到错误。然后我重新运行脚本,它每次都会工作

另一件奇怪的事情是,这个
FETCH
行执行了大约五次之后才会出现错误

我尝试捕捉错误并简单地重新调用整个过程,但错误不断发生。我知道的唯一解决方案是通过SQLServer的“执行”命令(键盘上的F5)再次运行脚本


我知道这里没有太多的事情要做。我自己也没有太多的细节要讲。

因此,我不知道什么类型的事情可以被视为“固定选项”,以及它们会产生什么影响

在我的脚本中,我使用了日期格式,以处理数据库表中一些不一致的数据。事情是这样的:

set dateformat mdy 
/* Do some DATETIME stuff with current format... */
set dateformat ymd 
// ...
set dateformat dmy
// ...
set dateformat ymd 
// ...

解决方案是不要像我上面所做的那样,将日期格式保留为ymd。只要在我所有的日期格式诡计的末尾添加一个
set dateformat mdy
,就可以防止错误的发生。奇怪的是,以
set-dateformat-dmy
结尾不起作用,但
set-dateformat-mdy
起作用

请发布定义、打开、读取、关闭和取消分配光标的相关代码。错误会告诉您问题所在-
SET
选项已更改。当然,如果您在同一个连接上重新运行,问题不会再次出现。
设置
选项将保持有效,直到有东西将它们更改为不同的值。您可以尝试
释放游标
。我非常感谢你们三位的关注和帮助。我已经找到了一个解决方案,并将其作为答案发布。非常感谢。