DECLARE @TMPSTR VARCHAR(2000)
SET @TMPSTR=char(39)+'1001'+char(39)+',4,0,0,0,0,0,0,0,0,0,'+char(39)+char(39)
PRINT 'INSERT INTO t_account_count VALUES('+@TMPSTR+')'
INSERT INTO t_account_count VALUES(@TMPSTR)
-------------------------------------------------
出错:
服务器: 消息 213,级别 16,状态 4,行 4
插入错误: 列名或所提供值的数目与表定义不匹配。
但,直接运行
INSERT INTO t_account_count VALUES('1001',4,0,0,0,0,0,0,0,0,0,'')
是行的,为什么啊?

解决方案 »

  1.   

    DECLARE @TMPSTR VARCHAR(2000),@sql varchar(7000)
    SET @TMPSTR=char(39)+'1001'+char(39)+',4,0,0,0,0,0,0,0,0,0,'+char(39)+char(39)
    set @sql='INSERT INTO t_account_count VALUES('+@TMPSTR+')'
    exe (@sql)
      

  2.   


    DECLARE @TMPSTR VARCHAR(2000),@sql varchar(7000)
    SET @TMPSTR=char(39)+'1001'+char(39)+',4,0,0,0,0,0,0,0,0,0,'+char(39)+char(39)
    set @sql='INSERT INTO t_account_count VALUES('+@TMPSTR+')'
    exe (@sql)
    -------------------------------------
    服务器: 消息 170,级别 15,状态 1,行 4
    第 4 行: 'exe' 附近有语法错误。
      

  3.   

    DECLARE @TMPSTR VARCHAR(2000),@sql varchar(7000)
    SET @TMPSTR=char(39)+'1001'+char(39)+',4,0,0,0,0,0,0,0,0,0,'+char(39)+char(39)
    set @sql='INSERT INTO t_account_count VALUES('+@TMPSTR+')'
    exec (@sql)
      

  4.   

    DECLARE @TMPSTR VARCHAR(2000),@sql varchar(7000)
    SET @TMPSTR=''1001''+char(39)+'',4,0,0,0,0,0,0,0,0,0,''
    set @sql='INSERT INTO t_account_count VALUES('+@TMPSTR+')'
    exe (@sql)
      

  5.   

    PRINT了出来也是显示一致的吗?那奇怪了