SQL语句中的循环

SQL语句中的循环类似于foreach循环,可以循环遍历某个表并进行新增、修改和删除的操作。

SQL语句中的循环,使用SQL的游标来实现。

上示例:

declare @ID int;--声明变量(@名称 类型)
begin--开始
	print '示例'--输出
	declare a_test_main cursor for select ID from TableName1--查出需要循环的集合放到游标中
	open a_test_main;--打开游标
	while 1=1--开始循环
	begin--开始
		fetch next from a_test_main into @ID--赋值到变量中
		if(@@fetch_status!=0)break;--如果没有结果退出循环
		if not exists(select * from TableName2 where ID = @ID)--判断不存在数据
		begin--开始
			print '新增'--输出
			insert into TableName2 (ID)values(@ID)--不存在数据时执行(新增)
		end--结束
		if exists(select * from TableName3 where ID = @ID)--判断存在数据
		begin--开始
			print '修改'--输出
			update TableName3 set ID = 1 where ID = @ID--存在数据时执行(修改)
		end--结束
		if exists(select * from TableName4 where ID = @ID)--判断存在数据
		begin--开始
			print '删除'--输出
			delete from TableName4 where ID = @ID--存在数据时执行(删除)
		end--结束
	end--结束
	close a_test_main--关闭游标
	deallocate a_test_main--释放游标
end--结束

更多推荐

SQL语句中的循环