1: 在字符串形式的变量中或在引号中用引号的话,需将一个单引号换成两个单引号。
   select 'abc''de'    -- 输出 abc'de
2: 
  不为什么,记录集作为临时的表时就是要加别名,记住就行了。

解决方案 »

  1.   

    问题(1):
    SQL中,'是字符串的定界符,凡是在字符串中出现的',都要用两个'
    问题(2):这是SQL的规定
    如果将查询语句做了一个子句再引用,需要用括号括起来,并给它一个别名
      

  2.   

    两个问题解决!
    但对这个select @s=@s+',['+ftype+'款项]=......中的=@s+',['的不理解!为何要加,写成这个样子步行吗?
    select @s=@s+ftype+'款项]=......
    发现很多的动态SQL都有类似的样子.
    ......
    declare @a varchar(8000)
    set @a=''
    select @a=@a+','+name from syscolumns where CONDITION
    set @a=substring(@,2,8000)
    ........如果改成这个样子不行吗?
    ......
    declare @a varchar(8000)
    set @a=''
    select @a=@a+name from syscolumns where CONDITION
    ........set @a=substring(@,2,8000)也就不要了!
      

  3.   

    这我试过!
    但不知@a=@a+','+name 中的,有何意思!
    @a=,n1,n2,n3,.....假如name=n1,n2,n3,n4
    大家说,n1,n2,n3,.....,n1前面的,有何意义!
    不懂!
      

  4.   

    这我试过!
    但不知@a=@a+','+name 中的,有何意思!
    @a=,n1,n2,n3,.....假如name=n1,n2,n3,n4
    大家说,n1,n2,n3,.....,n1前面的,有何意义!
    不懂!