请帮忙看一下这个触发器

TsungLee 2006-01-18 01:41:17
declare @writer bigint,@blackcount varchar,@sql varchar
set @writer=(select writer from B_mail where autoid=(select mailid from inserted))
set @sql=' ''%,'+str(@writer)+',%'' '

set @blackcount=(select count(*) from B_users where username=(select username from inserted) and blackmaillist like @sql)

if (@blackcount)<>'0'
delete from B_mailbox where autoid=(select autoid from inserted)



执行的时候,@blackcount总是为0,就是说(select count(*) from B_users where username=(select username from inserted) and blackmaillist like @sql)总是查不到结果。实际上是应该有的。
请大家帮忙看一下是什么问题。我想可能是like那里的单引号没处理好,但也不知道怎么弄了。
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2006-01-18
  • 打赏
  • 举报
回复
set @writer=(select top 1 writer from B_mail where autoid=(select mailid from inserted))
set @sql=' ''%,'+str(rtrim(@writer))+',%'' '
TsungLee 2006-01-18
  • 打赏
  • 举报
回复
之前的@blackcount总是为0。
按WangZWang(阿来) 的方法去做,@blackcount就变得都不为0 了。
zlp321002 2006-01-18
  • 打赏
  • 举报
回复
set @blackcount=(select count(*) from B_users where username=(select username from inserted) and blackmaillist like @sql)

======
set @blackcount=(select count(*) from B_users where username=(select username from inserted) and blackmaillist like '%'+@sql+'%')
WangZWang 2006-01-18
  • 打赏
  • 举报
回复
set @sql=' ''%,'+str(@writer)+',%'' '

--------改为

set @sql='%,'+cast(@writer as varchar)+',%'
--即可
TsungLee 2006-01-18
  • 打赏
  • 举报
回复
不行啊
samfeng_2003 2006-01-18
  • 打赏
  • 举报
回复
set @sql='%'+str(@writer)+'% '

这样试试呢?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧