循环中
fetch cur_1 into @str_name
select @str_return=@str_return+'$'+@str_name
变成
select @str_return=@str_return+'$'+@str_name
fetch cur_1 into @str_name
即可
fetch cur_1 into @str_name
select @str_return=@str_return+'$'+@str_name
变成
select @str_return=@str_return+'$'+@str_name
fetch cur_1 into @str_name
即可
数据量一大则巨慢。直接这样即可:
DECLARE @str_name varchar(400)
set @str_name = ‘’
select @str_name = @str_name +’$’ + lastname from Employees where lastname like @search_term + '%';
set @str_name = right(@str_name,len(@str_name)-1)
print @str_name
数据量一大则巨慢。直接这样即可:
DECLARE @str_name varchar(400)
set @str_name = ''
select @str_name = @str_name +'$' + lastname from Employees where lastname like @search_term + '%';
set @str_name = right(@str_name,len(@str_name)-1)
print @str_name
fetch cur_1 into @str_name
select @str_return=@str_return+'$'+@str_name
变成
select @str_return=@str_return+'$'+@str_name
fetch cur_1 into @str_name
即可"仍旧是一样的结果!没有用!
下面的试试,如果不行我把头给你。CREATE PROCEDURE sp_return_1
@search_term varchar(1000),
@str_return varchar(4000) output
AS
DECLARE @str_name varchar(400) declare cur_1 cursor for
select lastname from Employees where lastname like @search_term + '%'
open cur_1
fetch cur_1 into @str_name
select @str_return=''
while @@fetch_status=0
begin
select @str_return=@str_return+'$'+@str_name
fetch cur_1 into @str_name
end
set @str_return = right(@str_return,len(@str_return)-1)
close cur_1
deallocate cur_1
GO为什么不用我上面直接的SQL语句,而非要用光标?