截图好慢,直接打上来
--表Site 中 FatherClassId 是Int型,declare @FatherClassId int
set @FatherClassId=1001
declare @TempSelect nvarchar(500)     
set @TempSelect ='insert into Site(FatherClassId)values('''+@FatherClassId+''')'
print @TempSelect报错
在将 varchar 值 'insert into Site(FatherClassId)values('' 转换成数据类型 int 时失败。
应该不用转型啊,大家帮忙下哦
SQL

解决方案 »

  1.   

    int类型的字段,你愣是给两边加了单引号,当然报类型异常了
    declare @FatherClassId int
    set @FatherClassId=1001
    declare @TempSelect nvarchar(500)     
    set @TempSelect ='insert into Site(FatherClassId)values(@FatherClassId)'
    print @TempSelect
      

  2.   


    你这样不行哦,打印出来的是
    insert into Site(FatherClassId)values(@FatherClassId)
    而不是
    insert into Site(FatherClassId)values(1001)
      

  3.   


    那怎样打印出insert into Site(FatherClassId)values(1001)
    而不是insert into Site(FatherClassId)values(@FatherClassId)
      

  4.   

    int转为varchar不会报错
    但是FatherClassId 这是INT的,用字符串去插入当然报错
      

  5.   

    declare @FatherClassId int
    set @FatherClassId=1001
    declare @TempSelect nvarchar(500)    
    set @TempSelect = 'insert into Site(FatherClassId)values(@FatherClassId)'
    exec sp_executesql @TempSelect,N'@FatherClassId  int',@FatherClassId
    print @TempSelect
      

  6.   

    declare @FatherClassId intset @FatherClassId=1001 declare @TempSelect nvarchar(500)      set @TempSelect ='insert into Site(FatherClassId)values("+@FatherClassId+")'print @TempSelect