标签归档:触发器

数据库中触发器的坏处你知多少?


摘要:
下文通过文字的方式阐述数据库中使用触发器的坏处,如下所示;

触发器是隐藏在数据库内部的脚本,由数据库引擎自主的维系其运行方式,如果在系统中使用大量的触发器,会对系统后期产生大量的压力,下面将列举
触发器的坏处:

1. 触发器对一些跟踪不可见,当遇见错误时,我们无法及时跟踪其异常

2. 触发器对数据库间难移植,因为有些数据库无触发器机制

3. 触发器会加大数据库引擎的压力,容易造成死锁

在数据库的设计和开发中,我们应该尽可能的避免使用触发器,因为使用触发器会消耗数据库的资源;
我们应该让数据库回归其本质,作为一个数据的存储容器,对外只提供数据存储能力,让数据的运算交给专业的运算服务器进行。

mssql sqlserver sql脚本实现触发器中多个数据表之间联动(增加、修改、删除)操作操作的方法分享


摘要:
下文通过举例的方式讲述触发器中的insert update delete联动操作,如下所示:
实验环境:sql server 2008 R2

例:
下文通过举例的方式讲述“maomao365.comA”表上的进行增删改时,通过触发器自动联动操作至“maomao365.comB”表上的实现方式。

 
    ---建立基础表"maomao365.comA"和"maomao365.comB"
create table  [maomao365.comA]
(keyIdA int identity,
 infoA  varchar(100))
 go
 create table [maomao365.comB]
 (keyIdB int identity,keyIdAS int,
  infoB varchar(100))
  go

  ---创建增、删、改联动触发器
  ---同步新增触发器
  create trigger tr_maomao365_inserted
    on [maomao365.comA]
	 after insert 
  as
  begin
       insert into [maomao365.comB]
	   (keyIdAS,infoB)
	   select keyIdA,infoA from inserted 
  end
  go

  ---同步删除触发器
  create trigger tr_maomao365_delete
    on [maomao365.comA]
	 after delete 
  as
  begin
    delete from  [maomao365.comB]
	where keyIdAS in (select keyIdA from deleted) 
  end
  go


---同步修改触发器
  create trigger tr_maomao365_update
    on [maomao365.comA]
	 after update  
  as
  begin
    update   B 
	set B.infoB = a.infoA
	 from   [maomao365.comB]  B ,inserted a 
	 where  b.keyIdAS =a.keyIdA 
	 end
  go

  

  insert into [maomao365.comA]
  (infoA)values('sqlserver'),
  ('maomao')
  go

  select * from [maomao365.comB]


  update [maomao365.comA] 
  set infoA ='test' where keyIdA =1 


  select * from [maomao365.comB]


  delete [maomao365.comA] 
  where keyIdA =1 
  
  
  select * from [maomao365.comB]
  



  go

  drop table [maomao365.comA]
  drop     table [maomao365.comB]
  
mssql_sqlserver_触发器实现的数据联动

mssql_sqlserver_触发器实现的数据联动

mssql sqlserver 使用ssms查看指定数据表下的触发器的方法分享


摘要:
下文讲述使用SSMS管理器查看”数据表”下的触发器的方法分享,如下所示:
实验环境:sql server

下面将通过举例的方式,介绍查看使用SSMS 查看指定数据表下触发器的方法,如下所示:

   ---创建表触发器
   create table [maomao365.com](
    keyId int identity(1,1) primary key,
    info varchar(80),
    infoExtend char(30)
)
go

--创建insert触发器
create trigger trig_insert
on [maomao365.com]
after insert
as
begin
    --print 触发器脚本信息
	print 'ok';
end
go

mssql_sqlserver_ssms_查看特定数据表触发器的方法

mssql_sqlserver_ssms_查看特定数据表触发器的方法


相关阅读:
mssql sqlserver 触发器汇总专题