定义本地变量,赋值为参数,然后使用Replace

解决方案 »

  1.   

    Replace(@suserid,'''',''')
    这句话是根本无法执行的啊!
      

  2.   

    declare @UserID varchar(1000)
    set @UserID = @sUserID //select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
      

  3.   

    注视符号错了declare @UserID varchar(1000)
    set @UserID = @sUserID --select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
      

  4.   

    ' 后的引号不完整。
    消息 102,级别 15,状态 1,过程 tUser_Delete,第 15 行Replace(@UserID ,'''',''') 这种方法真的不行啊!
      

  5.   

    查看一下格式select Replace(@UserID ,'''',''')
      

  6.   

    在SQL中,根本就不允许出现奇数的单引号。
    而 select Replace(@UserID ,'''',''') 句中出现了7个,真巧是个奇数,所以无法执行。
    !!!
      

  7.   

    两个''代表一个实际的',如下:select Replace(@UserID ,'''''','''')
      

  8.   

    create table tUser (UserID varchar(30))insert into tUser select '1234' union select '5678' union select '6789' union select 'oh,yes' union select '''1234'',''5678'',''6789'''select * from tUser
    /* 测试数据
    1234
    '1234','5678','6789'
    5678
    6789
    oh,yes
    */CREATE PROCEDURE [dbo].[Eip_UserMingCheng_Delete] 
    --这是存储过程,不是函数.(楼主说过,“一个函数搞定”)
    @suserid varchar(1000)
    AS
    declare @a varchar(1000)
    set @a=@suserid
    set @a=replace(@a,'''','')
    set @a=replace(@a,',',''',''')
    exec('DELETE from tUser where UserID in ('''+@a+''')')
    GO
    --例子
    declare @temp varchar(1000)
    set @temp='''1234'',''5678'',''6789''' 
    print @temp
    exec Eip_UserMingCheng_Delete @temp/*结果
    '1234','5678','6789'
    oh,yes
    */
    说明:如果是'1234','5678','6789'写的话,这样的参数的格式在SQL是不能用的,错误的。(我想,楼主的那个参数应该是应用程序写出来的).这不能直接用在SQL,必须变成sql可以识别的字符串变量.