SQL2000判断触发器是否存在 SQL语句执行报错

ifnotexists(select*fromdbo.sysobjectswhereid=object_id(N'delpoinits')andOBJECTPROPERT... if not exists
(select * from dbo.sysobjects where id = object_id(N'delpoinits') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
我勒个去 我知道了 语句不全~~~ 后面应该接 begin ****** end 那么问问 begin end中间可以接创建表或触发器的语句不~~ 我去试试哈
*********-*--*-*-**-

if exists(select * from dbo.sysobjects where id = object_id(N'delpoints') and OBJECTPROPERTY(id, N'IsTrigger') = 2)
go
CREATE TRIGGER delpoints
ON GHXH_Customer
AFTER UPDATE
AS
BEGIN
update GHXH_Customer set points = 0 where name like '%零售顾客%'
END
还是有报错~~~消息 102,级别 15,状态 1,第 1 行
')' 附近有语法错误。~~~~~ 倒是可以创建上去
我勒个去 为什么 为什么必须加一个语句·~~ 我倒是成功了 为什么~~if exists (select * from sysobjects where id=object_id(N'delpoints') and objectproperty(id,N'IsTrigger')=2)
update GHXH_Customer set points = 0 where name like '%小明%'
go
CREATE TRIGGER delpoints ON GHXH_Customer AFTER UPDATE AS BEGIN update GHXH_Customer set points = 0 where name like '%小明%' END
展开
 我来答
沐天空
2013-05-06 · 超过21用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:54.5万
展开全部

我试验下了,帮你解答一些吧,不过我是用SQL2005的。

如果你用了if exists进行判断,后面一定要加drop trigger delpoints这条语句,因为只要触发器delpoints存在了,就先删除,然后再重新建触发器delpoints。

其次,exist里面的内容,我在SQL2005有两条语法,select * from sysobjects where id=object_id(N'delpoints') and type='tr', type='tr'意思是类型为触发器,我不明白objectproperty(id,N'IsTrigger')=2是什么意思,就换了另外一种形式。



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式