当前位置:数据库 > SQLServer >>

sql server2005触发器修改问题

begin end 中的alter trigger为何出错 --删除表 if object_id('timeTable') is not null drop table timeTable go --创建表 create table timeTable ( id int, date_time datetime, updatetime datetime, ) go --删除触发器 if object_id('setTime') is not null drop trigger setTime go --创建触发器 create trigger setTime on timeTable for insert,update as begin print 'aaaa' end go --插入数据 insert into timetable values(1,'01-07-01 12:00:00','01-07-01 13:00:00') select * from timeTable --修改触发器 if object_id(setTime) is not null begin alter trigger setTime----错误的原因是啥??? on timetable for insert,delete,update as begin print 'ffff' select * from timeTable end end
答案:'CREATE TRIGGER' 必须是查询批次中的第一个语句。
所以trigger 不能在begin 与 end中。你可以先删除然后再创建。


if object_id('timeTable') is not null
drop table timeTable
go
--创建表
create table timeTable
(
 id int,
 date_time datetime,
 updatetime datetime,
)
go
--删除触发器
if object_id('setTime') is not null
drop trigger setTime
go
--创建触发器
create trigger setTime
on timeTable
for insert,update
as
begin
 print 'aaaa'
end
go
--插入数据
insert into timetable values(1,'01-07-01 12:00:00','01-07-01 13:00:00')
select * from timeTable
--修改触发器
drop trigger setTime
go
--创建触发器
create trigger setTime
on timeTable
for insert,update
as
 begin
  print 'ffff'
  select * from timeTable
 end

上一个:SQL server 30道小练习求高手帮忙写下 下周要考试 !!!
下一个:为什么卸载Microsoft SQL Server 2005 的时候出现下面的提示,不能成功卸载

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,