declare cur cursor for
select top 1 a from A
declare @fetch_status int
select @fetch_status = 0
declare @a int
open cur
while @fetch_status = 0
begin
fetch next from cur
into @a
select @fetch_status = @@fetch_status
insert into B
values (@a)
end
我从A表中取一条数据,插到B表中,只有一条数据,执行时为什么插了2次,是不是@@fetch_status的问题
一楼的回答是正解,在循环外面先fetch一次,
@@fetch_status概述
在MSSQL中,有一个重要的全局变量叫做@fetch_status,它在数据库查询的处理中扮演着关键角色。这个变量的值可以反映出FETCH语句执行的不同状态,其类型为整数。首先,当FETCH语句执行成功时,@fetch_status的值会变为0,表示查询已成功获取到数据。其次,如果FETCH语句遇到失败或者查询结果集中不存在当前行...
@@FETCH_STATUS语句返回的值为0说明
FETCH 语句成功。-1 FETCH 语句失败或行不在结果集中。-2 提取的行不存在。共同学习!
sql中用两个游标,而只有一个@@fetch_status,怎么区分是属于哪一个的游 ...
fetch_status是全局变量 返回针对连接当前打开的任何游标发出的上一条游标 FETCH 语句的状态 及最后执行FETCH NEXT FROM 这句后的值,这句读取的是哪个游标那么他的值就是哪个游标的
@@FETCH_STATUS是什么意思啊?
fetch_status是MSSQL的一个全局变量其值有以下三种,分别表示三种不同含义:【返回类型integer】0 FETCH 语句成功-1 FETCH 语句失败或此行不在结果集中-2 被提取的行不存在@@fetch_status值的改变是通过fetch next from实现的“FETCH NEXT FROM Cursor”
WHILE @@FETCH_STATUS=0是什么意思
WHILE @@FETCH_STATUS=0 游标读取下一条数据是否成功。
@@FETCH_status<>-1是什么意思
fetch_status是MSSQL的一个全局变量 其值有以下三种,分别表示三种不同含义:【返回类型integer】0 FETCH 语句成功 -1 FETCH 语句失败或此行不在结果集中 -2 被提取的行不存在 fetch_status值的改变是通过fetch next from实现的
@@FETCH_STATUS =0 中的@是什么意思
是SQL全局变量的标志,比如 @@FETCH_STATUS 获取语句的状态 为0表示成功;ROWCOUNT 表示上次查询的行号 具体参考:https:\/\/msdn.microsoft.com\/zh-cn\/library\/ms188790.aspx
sql循环while(0=0)与while @@fetch_status=0这两个语句的区别
第一句是SQL循环用的,这个条件下,会读取所有的记录,因为会一直循环 第二句是游标里的,@@fetch_status=0 等于0时,说明游标是成功的
SQL FETCH
SQL的FETCH命令是Transact-SQL中用于从游标中检索特定行的重要工具。它的语法允许根据不同选项获取游标中的行,包括NEXT(默认选项,获取下一行)、PRIOR(返回前一行)、FIRST和LAST(分别获取第一行和最后一行)、ABSOLUTE和RELATIVE(指定相对位置进行移动)。ABSOLUTE和RELATIVE选项需要一个整数参数,而FETCH...
sql server中两个@是什么意思
两个@表明是系统定义的变量,如果是一个@则是用户自己定义的变量。