sql存储过程 批量删除固定前缀的表 报错,求大神看看

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[up_BatchDleTbl]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[up_BatchDleTbl]
GO

create procedure up_BatchDleTbl(@tblName varchar(50))
With Encryption
as

declare @sql varchar(800)

set @sql='declare @tname varchar(50)'+char(13)
set @sql=@sql+'while(exists(select * from sysobjects where name like '''+@tblName+'''))'+char(13)
set @sql=@sql+'begin'+char(13)
set @sql=@sql+'select @tname=name from sysobjects where name like '''+@tblName+''''+char(13)
set @sql=@sql+'exec(''drop table''+@tname)'+char(13)
set @sql=@sql+'end'

exec(@sql)

GO

http://bbs.csdn.net/topics/392085238?page=1