CREATE PROC PU_B(@M VARCHAR(20)
AS
BEGINEXEC('UPDATE tabMonth 
SET CurrentMonth=(select right('+@M+',6))')
END
GOEXEC  PU_B 'TAB200709'列名 'TAB200709' 无效。

解决方案 »

  1.   

    CREATE PROC PU_B(@M VARCHAR(20)
    AS
    BEGINEXEC('UPDATE tabMonth 
    SET CurrentMonth=(select right('''+@M+''',6))')
    END
    GO
      

  2.   

    CREATE PROC PU_B(@M VARCHAR(20)
    AS
        EXEC('UPDATE tabMonth SET CurrentMonth=right('''+@M+''',6)')
    GO
      

  3.   

    CREATE PROC PU_B(@M VARCHAR(20))
    AS
        EXEC('UPDATE tabMonth SET CurrentMonth=right('''+@M+''',6)')
    GO
      

  4.   


    alter PROC PU_B(@M VARCHAR(20))
    AS
    BEGINexec('UPDATE tabMonth 
    SET CurrentMonth= right('''+@M+''',6)')
    END
    GOEXEC  PU_B 'TAB200709'
      

  5.   

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: <Description,,>
    -- =============================================
    CREATE PROC PU_B(@M VARCHAR(20))
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;    UPDATE tabMonth SET CurrentMonth=right(@M,6)
    END
    GO