根据主键ID批量修改状态,主键ID是全球唯一标识列,我用create PROCEDURE sky_UpdMail
@IsmailDel bit
AS
BEGIN
declare @mailId varchar(1000)
set @mailId=''
update mail set IsmailDel= @IsmailDel where
charindex(','+ltrim(mailId)+',',','+@mailId+',')>0
END
GO
和create PROCEDURE sky_UpdMail
@mailId varchar(10000),
@IsmailDel bit
AS
BEGIN
update mail set IsmailDel= @IsmailDel where mailId in (@mailId)
END
GO
都不行,都报指定了过多的参数,各位大侠,谁能帮我解决,小弟感激不尽
@IsmailDel bit
AS
BEGIN
declare @mailId varchar(1000)
set @mailId=''
update mail set IsmailDel= @IsmailDel where
charindex(','+ltrim(mailId)+',',','+@mailId+',')>0
END
GO
和create PROCEDURE sky_UpdMail
@mailId varchar(10000),
@IsmailDel bit
AS
BEGIN
update mail set IsmailDel= @IsmailDel where mailId in (@mailId)
END
GO
都不行,都报指定了过多的参数,各位大侠,谁能帮我解决,小弟感激不尽
@IsmailDel bit
AS
BEGIN
declare @mailId varchar(1000)
set @mailId=''
update mail set IsmailDel= @IsmailDel where
charindex(','+ltrim(mailId)+',',','+@mailId+',')>0
END
GO"郁闷,这句话是干嘛的啊??charindex的后一项是',,',然后后面的大于零在什么情况下可以成立啊?mailId也为空值??"
你的charindex里面是想要那两个字符串进行比较...
alert PROCEDURE sky_UpdMail
@mailId varchar(1000),
@IsmailDel bit
AS
BEGIN
update mail set IsmailDel= @IsmailDel where mailId in (@mailId)
END
@mailId varchar(500),---没必要那么长 不要超过8000
@IsmailDel bit
AS
BEGIN
exec('update mail set IsmailDel= '+ltrim(@IsmailDel)+' where '',''+'+@mailId+''','' like ''%,''+mailId+'',%''')END
@mailId varchar(1000),
@IsmailDel bit
AS
BEGIN
update mail set IsmailDel= @IsmailDel where
charindex(ltrim(mailId),@mailId)>0
END
GO