declare @UserID varchar(1000) set @UserID = @sUserID //select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
注视符号错了declare @UserID varchar(1000) set @UserID = @sUserID --select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
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可以识别的字符串变量.
这句话是根本无法执行的啊!
set @UserID = @sUserID //select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
set @UserID = @sUserID --select Replace(@UserID ,'''',''')DELETE from tUser where UserID in (Replace(@UserID ,'''','''))
消息 102,级别 15,状态 1,过程 tUser_Delete,第 15 行Replace(@UserID ,'''',''') 这种方法真的不行啊!
而 select Replace(@UserID ,'''',''') 句中出现了7个,真巧是个奇数,所以无法执行。
!!!
/* 测试数据
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可以识别的字符串变量.