谁帮我修改一下错误的地方
ALTER TRIGGER [Valid_shortmessage]
ON [dbo].[ST_shortmessage]
Instead Of INSERT
AS
BEGIN
declare @Receiver varchar(256)
select @Receiver=Receiver from inserted
if(@Receiver not in(select UserName from aspnet_Users))
signal sqlstate '17'
set message_text = '不存在此用户,发送失败!'; else
insert into ST_shortmessage select * from inserted
END 消息 102,级别 15,状态 1,过程 Valid_shortmessage,第 21 行
'signal' 附近有语法错误。
ALTER TRIGGER [Valid_shortmessage]
ON [dbo].[ST_shortmessage]
Instead Of INSERT
AS
BEGIN
declare @Receiver varchar(256)
select @Receiver=Receiver from inserted
if(@Receiver not in(select UserName from aspnet_Users))
signal sqlstate '17'
set message_text = '不存在此用户,发送失败!'; else
insert into ST_shortmessage select * from inserted
END 消息 102,级别 15,状态 1,过程 Valid_shortmessage,第 21 行
'signal' 附近有语法错误。
ALTER TRIGGER [Valid_shortmessage]
ON [dbo].[ST_shortmessage]
Instead Of INSERT
AS
BEGIN
declare @Receiver varchar(256)
select @Receiver=Receiver from inserted
if(@Receiver not in(select UserName from aspnet_Users))
RAISERROR('不存在此用户,发送失败!', 17 ,-1)
WITH SETERRORset message_text = '不存在此用户,发送失败!'; else
insert into ST_shortmessage select * from inserted
END 好像是这种用法,不过不知道对不对?
应该是这句话的错误
一楼说的是对的,应该使用:
RAISERROR('不存在此用户,发送失败!', 17 ,-1)
WITH SETERROR
ON [dbo].[ST_shortmessage]
Instead Of INSERT
AS
BEGIN
if not exists(select 1 from aspnet_Users u join inserted i on u.UserName=i.Receiver)
raiserror('不存在此用户,发送失败!',17,1)
else
insert into ST_shortmessage select * from inserted
END