⑴ sql Server 2008 的存储过程是否会触发触发器
只要是对表进行了操作,都肆厅逗会触发触发器裂卖的。应该是你触发器写错了。伏唯好好检查一下自己的delete触发器。
⑵ sql server 2008的触发器:以下是一个触发器,请问以下代码中的if Update(StudentID)表示什么意思
UPDATE
返回一个布尔值,指示是否对帆码表或视图的指定列进行了 INSERT 或 UPDATE 尝试。可以在 Transact-SQL INSERT 或 UPDATE 触发器主体中的任意位置使用 UPDATE(),以测试触发器是否应执行某些操作。
对于你的触发器.
如坦轿灶果
UPDATE Student SET StudentID = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 true
如果
UPDATE Student SET 其他字段 = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 flase
你这个触发器的逻辑, 基本上就是, 如果更新了 学生表的 学号。
那么 就要让扮同步更新 成绩表中的学号
⑶ sql server2008中的触发器有3种类型,分别为
(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在表或视图中修改数据的insert、update、delete语句也。
(2)DDL触发器:是指当服务器或数据库中发生数据定义语言(DDL)事件时将启用。DDL事件即指在表或索引中的create、alter、drop语句也。
(3)登陆触发器:是指当用户登录SQL SERVER实例建立会话时触发。
⑷ SQL server2008 中的触发器怎么定义,以及应用
create triger tr_类型_触发器名字 on 表名
触发类型:after | instead of
操作察扒类型:insert | delete | update
as
begin
代码
end
插入数据同时获得自动增长的ID
insert into USERS output inserted.* values('败姿昌111','111');
删除数据的同时 插入数册滚据
select * from USERS
go
create trigger test on USERS
after
delete
as
insert into USERS (Name,Sex)
select Name,Sex from deleted
go
⑸ SQL Server 2008 同一表下同一事件有两个触发器,其中一个对另一个产生影响导致数据无法删除
你把这两个触发蔽哪如器写在一个触发器里宏启面吧
alter trigger new_delete
on H_K_B
for delete
as
insert into tbl_new
select deleted.id,deleted.x,deleted.k_id from deleted left join D on D.x=deleted.x and D.k_id=deleted.k_id where D.sf=1
declare @x varchar(20),@id varchar(20)
select @x = x, @id = id from deleted
declare @istates varchar(10)
select @istates = istates from A where x = @x
if @istates = 2 and not exists(select 1 from B where x=@x istates<缓锋3)
begin
return
end
else
begin
delete c from test c inner join deleted b on 1=1 and a.id=b.id
end
⑹ sql server 2008支持哪两种类型的触发器
DML触发器,具体是某个表的数据进行了新增修改删除可以定义相关触发器来控制相关行为
DDL触念老姿发器,服务器级别的触发器,可以在服务器仔绝的相关行为发含脊生后,比如有用户登录,新增了表之类的动作做捕捉处理
⑺ SQL SERVER 2008 触发器中怎么将参数传递给存储过程中的输入参数@sno
你可以在触发器上调用存储过程,
触发器中有两个临时表inserted 和deleted ,这两个表的表结构和创建触发器的表是一样的,
inserted表存的是当前插入或更新后的值,
deleted表存的是当前删除或修改前的值.
你可以利用以上两个临时表的值来获得你要的参数值,然后调用时传入存储过程
另外你也可以直接在触发器中操作,不用存储过程。
⑻ sql server 2008 触发器放在哪
放在需指庆要触发条件的表下面,例如下面的on后面跟山旦的[dbo].[A01]就是给唯唯握哪个表触发
ALTER TRIGGER [dbo].[A01_UPDATE_A815]
ON [dbo].[A01]
AFTER UPDATE
AS
BEGIN
SELECT A0188 INTO #A0188 FROM INSERTED
IF UPDATE ("A0191") OR UPDATE ("EXT072")
⑼ sql server 2008触发器的创建
create trigger trg_1
on 同学信息表
for insert,update
as
if update(联系电话)
update 同学信息表 set 联系电话=
(left(inserted.联系电话,3)+'-'+substring(inserted.联系电话,4,4)+'-'+right(inserted.联系电话,4))
from inserted where inserted.学号=同学信息表.学号 and inserted.联系电话 !=null
⑽ 请问SQL server2008r2触发器怎么写看了半天没个例子,不容易明白!
你这个写法是oracle的。sqlserver没有for each row也没有referencing。
createtrigger月工资变动
on考勤
afterupdate
begin
declare@一月份缺勤扣薪亮伍桥_oldnumeric(10,4)
declare@一月份缺勤扣薪_newnumeric(10,4)
declare@员工编号int
ifupdate(一月份缺勤扣薪)
begin
select@一月份缺勤扣薪_old=一月份缺勤扣薪fromdeleted
select@一月份缺勤扣薪_new=一月份缺勤扣薪,@员工编号=员工编号frominserted
if(@一月份缺勤扣薪_old!=@一月份缺勤扣薪_new)
update员工月工资set一月份工资=一月份工资-b.一月份扣薪+c.一月份扣薪
from员工月工资a,insertedb,deleted
wherea.员工编号=b.员工编号anda.员橘皮工编敬猛号=c.员工编号
end