时间:2021-07-01 10:21:17 帮助过:3人阅读
上边的一个Demo只是告诉大家游标的一些基本指令,其实没啥用,要在函数中,存储过程中使用游标才真的有用类,接下来,请看Demo2:
-->这个函数主要实现的功能是,传入表名,将该表的所有的列,拼成字符串返回回来。
create function [dbo].[getCols] ( @table_name AS varchar(50) ) RETURNS varchar(2000) AS BEGIN DECLARE @colname VARCHAR(50) DECLARE @typename VARCHAR(50) DECLARE @result varchar(2000) set @result = ‘‘ DECLARE mycur CURSOR FOR ---定义游标 select c.name as columnname,ty.name as typename from sys.columns c inner join sys.tables t on t.object_id=c.object_id inner join sys.types ty on ty.system_type_id=c.system_type_id where t.name = @table_name and ty.name !=‘sysname‘ ---传入参数@table_name order by t.name,c.column_id OPEN mycur ---打开游标 FETCH NEXT FROM mycur into ----获取下一条数据 @colname,@typename ----将获取的数据保存到变量中 WHILE @@FETCH_STATUS = 0 ----返回上次执行Fetch命令的状态,0:成功 -1:失败 -2:被提取的行不存在 BEGIN if @result = null or @result = ‘‘ begin SET @result = @colname end else begin SET @result = @result + ‘,‘ + @colname end FETCH NEXT FROM mycur into ---获取下一条数据 @colname,@typename END CLOSE mycur ---关闭游标 DEALLOCATE mycur ----释放资源 RETURN @result END
游标的使用实例(Sqlserver版本)
标签: