values('''+@name+''')' =>values('''+ replace(@name,''','''')+''')'

解决方案 »

  1.   

    意思就是@name 把里面的' 变 ''
      

  2.   

    declare @sql varchar(500)
    set @sql = 'insert into tmp([name]) values('''+replace(@name,'''','''''')+''')'
    exec(@sql)
      

  3.   

    declare @sql Nvarchar(500)
    set @sql = N'insert into tmp([name]) values(@name)'
    exec sp_executesql @sql,N'@name varchar(50)',@name
      

  4.   

    declare @sql nvarchar(500)
    set @sql = 'insert into tmp([name]) values(@name)'
    exec sp_executesql @sql, N'@name nvarchar(500)', @name
      

  5.   

    ...哦~我的少了好多个'' SORRY....哎~
      

  6.   

    set quoted_identifier off
    declare @sql varchar(500)
    set @sql = "insert into tmp([name]) values("+@name+")"
    exec(@sql)
      

  7.   

    上面的改一下:
    set quoted_identifier off
    declare @sql varchar(500)
    set @sql = "insert into tmp([name]) values("""+@name+""")"
    exec(@sql)