如何定义动态游标?

问题描述:

我想在定义游标是使用动态SQL语句,可否实现,怎样实现?

如:
DECLARE cuTemp CURSOR LOCAL FOR
EXEC ('SELECT DISTINCT ' + @typefield + ' FROM ' + @tablename)

---------------------------------------------------------------
回答:

运行下面的SQL看看结果:

declare @sql varchar(2000),
@typefield varchar(100),
@tablename varchar(255),
@name varchar(100)
select @typefield = 'name',@tablename = 'sysobjects'
set @sql = ' declare cuTemp cursor for '
+' SELECT DISTINCT '+@typefield + ' FROM ' + @tablename
exec (@sql)
open cuTemp
fetch cuTemp into @name
while (@@fetch_status=0)
begin
print @name
fetch cuTemp into @name
end
close cuTemp
DEALLOCATE cuTemp

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus