SET @SQL = 'INSERT ProductClass(ClassName, ParentID, ParentPath, Depth,Child)' +
          ' Values('''+@ClassName+''', '+cast(@ParentID as varchar(10))+', '''' , 0, 0)'

解决方案 »

  1.   

    SET @SQL = 'INSERT ProductClass(ClassName, ParentID, ParentPath, Depth,Child)' +
              ' Values('''+@ClassName+''', '+cast(@ParentID as varchar(10))+', '''' , 0, 0)'
      

  2.   

    zheninchangjiang(john shu),谢谢你帮我解决上一个问题,不过这个问题,你好像理解错了吧ParentID 是INT型的,你把@ParentID 转换为 '+cast(@ParentID as varchar(10))+',不还是字符型吗,我的意思是怎么将@ParentID在' Values('''+@ClassName+''', '+cast(@ParentID as varchar(10))+', '''' , 0, 0)'里用INT型表示
      

  3.   

    这个是动态语句的问题,在这个后你用print @SQL 看一下实际效果。
    我做的测试:
    declare @classname varchar(10),@parentid int
    select @classname='fdf',@parentid=2
    declare @sql varchar(1000)
    SET @SQL = 'INSERT ProductClass(ClassName, ParentID, ParentPath, Depth,Child)' +
              ' Values('''+@ClassName+''', '+cast(@ParentID as varchar(10))+', '''' , 0, 0)'
    print @sql--结果:
    INSERT ProductClass(ClassName, ParentID, ParentPath, Depth,Child) Values('fdf', 2, '' , 0, 0) --这个SQL语句应该就是你要的吧