存储过程中的模模糊糊查询没有结果

存储过程中的模糊查询没有结果
下述的sql为根据传入的表名@TABLENAME、字段名@COLUMN(序列编号如LM20150420001)、字母@LETTER查询后今天后四位最大的序列编号

SET @SQL='SELECT TOP 1 '+@NEWID+'=['+@COLUMN+'] FROM '+@TABLENAME+' WHERE ['+@COLUMN+'] LIKE '''
+@LETTER+@YYYY+@MM+@DD+'''+'+'''%'''+' ORDER BY CONVERT(INT,RIGHT('+@COLUMN+',4)) DESC'

没有报错,但是模糊查询无结果,不知道是LIKE的后面那块有问题
------解决思路----------------------
ALTER PROCEDURE [dbo].[GETID]
(
@table varchar(20),
@letter varchar(20),
@pkey varchar(20),
@oldid nvarchar(16)output,
@newid nvarchar(16) output
)
AS
BEGIN 
DECLARE @DATE DATETIME
DECLARE @YYYY VARCHAR(4)
DECLARE @MM VARCHAR(2)
DECLARE @DD VARCHAR(2)
DECLARE @sql NVARCHAR(4000)
--保存当前时间
SET @DATE=GETDATE()
SET @YYYY=DATEPART(YYYY,@DATE)
SET @MM=DATEPART(MM,@DATE)
SET @DD=DATEPART(DD,@DATE)
--位数不够补零
SET @YYYY=REPLICATE('0',4-LEN(@YYYY))+@YYYY
SET @MM=REPLICATE('0',2-LEN(@MM))+@MM
SET @DD=REPLICATE('0',2-LEN(@DD))+@DD
--取出当前表已有的最大newid
set @sql='select top 1 @oldid=['+@pkey+'] from '+@table+' where '+@pkey+
' like '''+@letter+@YYYY+@MM+@DD+'%'' Order by CONVERT(int,RIGHT('+@pkey+',4)) desc'
EXEC SYS.sp_executesql @sql,N'@oldid nvarchar(16) OUT',@oldid OUT
--select top 1 @oldid=[id] from test where [id] like @letter+@YYYY+@MM+@DD+'%' order by convert(int,right(id,4)) desc
 
 
--如果未取出来
IF @oldid IS NULL
    set @newid=(@letter+@YYYY+@MM+@DD+'0001')
ELSE
BEGIN
    DECLARE @NUM VARCHAR(4)
    SET @NUM=CONVERT(VARCHAR, (CONVERT(INT, RIGHT(@oldid,4))+ 1))
    SET @NUM=REPLICATE('0',4-LEN(@NUM))+@NUM
    --最后返回日期加编号
    SET @newid=@letter+@YYYY+@MM+@DD+@NUM
    PRINT 1
    END
END
GO
try this