一、游标的使用并不难,游标其实就是编程中的for循环,只不过在数据库中写法不同而已。
DECLARE My_Cursor CURSOR --创建游标读取数据
FOR
select id,name from 表--数据源
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @id,@name --读取第一行数据
WHILE @@FETCH_STATUS = 0
BEGIN
--业务处理
FETCH NEXT FROM My_Cursor INTO @id,@name --读取下一行数据,没有则会无限循环
END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
二、在业务处理的地方,可以根据条件循环吧数据加到临时表中,这样一来临时表行转列的动态列数据就可以加到临时表中了。
但是要添加进去的值是参数
insert into #t_Data select @id,@name --这样执行会报错
这里就需要用到拼接了,使用Exec()方法执行。
Exec('insert into #t_Data select ' + @id +@name) --这里只是例子@id是int类型也会报错就需要cast转换类型了。