create procedure aaa
@name varchar(30)
as
declare @str varchar(5000)
select @str = 'select a from tba where l1 ='''+@name+''''
exec('declare c1 cursor for @str')
open c1
fetch next from c1
....
close c1
deallocate c1
注意用的是单引号。
上面的语句应该是错误的。
create procedure aaa
@name varchar(30)
as
declare @str varchar(5000)
select @str = 'select a from tba where l1 ='''+@name+''''
exec('declare c1 cursor for' +@str) ---- *******
open c1
fetch next from c1
....
close c1
deallocate c1