sql 中怎样利用循环将一个表中的数据按行依次插入到另一个表中
sql中怎样利用循环将表1的数据按行依次插入到表2中,并且如果表1的某个字段中的数据长度大于表2的字段的数据长度就会提示出表1中是哪一行不能插入,而表1中符合条件的数据能...
sql 中怎样利用循环将表1的数据按行依次插入到表2中,并且如果表1的某个字段中的数据长度大于表2的字段的数据长度就会提示出表1中是哪一行不能插入,而表1中符合条件的数据能够插入到表2
展开
1个回答
推荐于2017-11-21 · 知道合伙人软件行家
关注
展开全部
前面先申明变量1,2这种,和数据表字段类型一样
DECLARE @mycur CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
OPEN @mycur
FETCH NEXT FROM @mycur INTO 变量名1,变量名2,变量名3,...
WHILE @@FETCH_STATUS=0
BEGIN
SQL语句执行过程... ...
判断是否符合条件
FETCH NEXT FROM @mycur INTO 变量名1,变量名2,变量名3,...
END
CLOSE @mycur
DEALLOCATE @mycur (删除游标)
DECLARE @mycur CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
OPEN @mycur
FETCH NEXT FROM @mycur INTO 变量名1,变量名2,变量名3,...
WHILE @@FETCH_STATUS=0
BEGIN
SQL语句执行过程... ...
判断是否符合条件
FETCH NEXT FROM @mycur INTO 变量名1,变量名2,变量名3,...
END
CLOSE @mycur
DEALLOCATE @mycur (删除游标)
更多追问追答
追问
WHILE @@FETCH_STATUS=0这个地方不懂,会不会造成死循环啊
追答
@@fetch_status是MicroSoft SQL SERVER的一个全局变量
其值有以下三种,分别表示三种不同含义:【返回类型integer】
0 FETCH 语句成功
-1 FETCH 语句失败或此行不在结果集中
-2 被提取的行不存在
@@fetch_status值的改变是通过fetch next from实现的
“FETCH NEXT FROM Cursor”
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询