declare @i int
      set @i = 1 --初始化@i为1
      while @i <= 10 --如果@i小于100,这里改成100万即是插入100万条记
      begin ------------------
          select @SQLString='insert into ['+ @gTable +'] (Name,age,num) values('''+@sName+''','+@i+',0)'
          EXEC sp_executesql @SQLString  
          set @i = @i + 1
      end --------------------age在表中为int(4)错误:
转换为数据类型为 int 的列时发生语法错误怎样可以将这个数值型变量插入数据库中,谢谢!

解决方案 »

  1.   

    declare  @SQLString nvarchar(4000),@sName varchar(20)
    declare @i int
          set @i = 1 --初始化@i为1
          while @i <= 10 --如果@i小于100,这里改成100万即是插入100万条记
          begin ------------------
              select @SQLString='insert into ['+ @gTable +'] (Name,age,num) values(@sName,@i,0)'
              EXEC sp_executesql @SQLString,N'@sName varchar(20),@i int',@sName,@i
              set @i = @i + 1
          end --或者
    declare @i int
          set @i = 1 --初始化@i为1
          while @i <= 10 --如果@i小于100,这里改成100万即是插入100万条记
          begin ------------------
              select @SQLString='insert into ['+ @gTable +'] (Name,age,num) values('''+@sName+''','+RTRIM(@i)+',0)'
              EXEC(@SQLString)  
              set @i = @i + 1
          end
      

  2.   

    '+@i+'换成'+ Convert(varchar(30),@i)+'测试下看看
      

  3.   

    哈!自己解决了
     select @SQLString='insert into ['+ @gTable +'] (Name,age,num) values('''+@sName+''','+CONVERT(varchar,@i,2)+',0)'将@i转换为。varchar。可以插入了。谢谢了
    但我数据库是int啊!
      

  4.   

    set @i = @i + 1 改为  set @i =convert(int, @i) + 1