急!急!急!触发器的问题
我写了下面一段触发器代码,如下:
CREATE TRIGGER smsarticle ON tbl_RecieveSM FOR INSERT
AS
DECLARE @mobile nvarchar(20)
DECLARE @cont nvarchar(100)
DECLARE @zhiling nvarchar(4)
SET @mobile = tbl_RecieveSM.mobile
SET @cont = SUBSTRING(tbl_RecieveSM.content,5,LEN(tbl_RecieveSM.content)-4)
SET @zhiling = UPPER(SUBSTRING(tbl_RecieveSM.content,1,4))
IF(@zhiling ='DMZW')
BEGIN
INSERT INTO Article (Article_Mobile,Article_Content,Article_Time)
VALUES (@mobile,@cont,getDate())
END
IF(@zhiling ='ZWPX')
BEGIN
UPDATE Article SET Article_Vote = ArticleVote + 1
FROM inserted
WHERE Article.Article_ID = RTRIM(SUBSTRING(insered.content,5,4))
and UPPER(SUBSTRING(inserted.content,1,4))='ZWPX'
END
提示出错:
务器: 消息 107,级别 16,状态 3,过程 smsarticle,行 9
列前缀 'tbl_RecieveSM' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,过程 smsarticle,行 10
列前缀 'tbl_RecieveSM' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,过程 smsarticle,行 10
列前缀 'tbl_RecieveSM' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,过程 smsarticle,行 11
列前缀 'tbl_RecieveSM' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,过程 smsarticle,行 21
列前缀 'insered' 与查询中所用的表名或别名不匹配。
请各位高手帮小弟一把,怎么样写才能不出错!谢谢
问题点数:50、回复次数:6Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:50:49 得分 45
CREATE TRIGGER smsarticle ON tbl_RecieveSM FOR INSERT
AS
DECLARE @mobile nvarchar(20)
DECLARE @cont nvarchar(100)
DECLARE @zhiling nvarchar(4)
Select @mobile = mobile,@cont = SUBSTRING(content,5,LEN(content)-4),@zhiling = UPPER(SUBSTRING(content,1,4)) from tbl_RecieveSM
IF(@zhiling ='DMZW')
BEGIN
INSERT INTO Article (Article_Mobile,Article_Content,Article_Time)
VALUES (@mobile,@cont,getDate())
END
IF(@zhiling ='ZWPX')
BEGIN
UPDATE Article SET Article_Vote = ArticleVote + 1
FROM inserted
WHERE Article.Article_ID = RTRIM(SUBSTRING(insered.content,5,4))
and UPPER(SUBSTRING(content,1,4))='ZWPX'
ENDTop
2 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:52:32 得分 0
但是还是有点问题,就你这种写法,如果每次只插入一条数据,你的触发器就有用。
同时插入多条的话,你的触发器就会失效。Top
3 楼littleqiang520(小强.NET)回复于 2005-05-12 14:54:57 得分 0
to paoluo
那么写 2个触发器行不行? 我是同时插入多条,用线程的,但是每次保证一条插入以后,再插入一条。这样要不要紧?Top
4 楼zjcxc(邹建)回复于 2005-05-12 14:56:03 得分 5
每次保证一条插入以后,再插入一条
这样处理不会有问题了.Top
5 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:57:34 得分 0
回复人: littleqiang520(小强.NET) ( ) 信誉:100 2005-05-12 14:54:00 得分: 0
to paoluo
那么写 2个触发器行不行? 我是同时插入多条,用线程的,但是每次保证一条插入以后,再插入一条。这样要不要紧?
-------------------------------------
如果可以保证一条插入以后,再插入一条,这个触发器就可以。Top
6 楼heguosheng(何国胜)回复于 2005-05-12 22:07:02 得分 0
markTop




