执行这个语句错在哪里呢?该怎么解决

执行这个语句错在哪里呢?CREATEPROCPU_B(@MVARCHAR(20)ASBEGINEXEC( UPDATEtabMonthSETCurrentMonth(sele

执行这个语句错在哪里呢?
CREATE   PROC   PU_B(@M   VARCHAR(20)
AS
BEGIN

EXEC( 'UPDATE   tabMonth  
SET   CurrentMonth=(select   right( '+@M+ ',6)) ')
END
GO

EXEC     PU_B   'TAB200709 '

列名   'TAB200709 '   无效。

[解决办法]
CREATE PROC PU_B(@M VARCHAR(20)
AS
BEGIN

EXEC( 'UPDATE tabMonth
SET CurrentMonth=(select right( ' ' '+@M+ ' ' ',6)) ')
END
GO
[解决办法]
CREATE PROC PU_B(@M VARCHAR(20)
AS
EXEC( 'UPDATE tabMonth SET CurrentMonth=right( ' ' '+@M+ ' ' ',6) ')
GO
[解决办法]
CREATE PROC PU_B(@M VARCHAR(20))
AS
EXEC( 'UPDATE tabMonth SET CurrentMonth=right( ' ' '+@M+ ' ' ',6) ')
GO