我想是'insert into ['+@tableName+'](a) values('+cast(@a as varchar)+')
有语法错误,学习中........

解决方案 »

  1.   

    'insert into '+@tableName+'(a) values('+cast(@a as varchar)+')'
      

  2.   

    CREATE proc insertA @tableName  varchar(50),@a smalldatetime
    as
    declare @sql varchar(300)
    set @sql = 'insert into ['+@tableName+'](a) values(''+cast(@a as varchar)+'')'
    exec(@sql)
    GO
      

  3.   

    CREATE proc insertA @tableName  varchar(50),@a smalldatetime
    as
    declare @sql varchar(300)
    set @sql = 'insert into ['+@tableName+'](a) values('''+cast(@a as varchar)+''')'
    exec(@sql)
    GO
      

  4.   

    我的修改如下:
    CREATE proc insertA @tableName  varchar(50),@a smalldatetime
    as
    declare @sql varchar(300)
    set @sql = 'insert into   '+@tableName+'(a) values('+''''+cast(@a as varchar)+''''+')'
    exec(@sql)
    GO
      

  5.   

    CREATE proc insertA @tableName  varchar(50),@a smalldatetime
    as
    declare @sql varchar(300)
    set @sql = 'insert into   '+@tableName+'(a) values('+''''+cast(@a as varchar)+''''+')'
    exec(@sql)
    GO
      

  6.   

    'insert into ['+@tableName+'](a) values('''+cast(@a as varchar)+''')'
    是关键,在字符串中如果有'号的话,就要用''来替代
      

  7.   

    set @sql = 'insert into ['+@tableName+'](a) values('''+cast(@a as varchar)+''')'
    就OK.