修改SQL Server触发器状态的语句


  本文标签:SQL Server触发器

  下面为您介绍的SQL语句用于复制表、以及查看并修改SQL Server触发器状态,如果您对SQL语句使用方面感兴趣的话,不妨一看  。

  1.INSERT INTO SELECT语句

  语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

  要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量  。示例如下:

  INSERT INTO SELECT语句复制表数据

  --1.创建测试表

  1. create TABLE Table1  
  2.  (  
  3.    a varchar(10),  
  4.    b varchar(10),  
  5.    c varchar(10),  
  6.   CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED  
  7.    (  
  8.  a ASC  
  9.    )  
  10.  ) ON [PRIMARY]  
  11.  
  12. create TABLE Table2  
  13.  (  
  14.    a varchar(10),  
  15.    c varchar(10),  
  16.    d int,  
  17.   CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED  
  18.    (  
  19.  a ASC  
  20.    )  
  21.  ) ON [PRIMARY]  
  22. GO  

  --2.创建测试数据

  1. Insert into Table1 values(赵,asds,90)  
  2. Insert into Table1 values(钱,asds,100)  
  3. Insert into Table1 values(孙,asds,80)  
  4. Insert into Table1 values(李,asds,null)  
  5. GO  
  6. select * from Table2 

  --3.INSERT INTO SELECT语句复制表数据

  1. Insert into Table2(a, c, d) select a,c,5 from Table1  
  2. GO 

  --4.显示更新后的结果

  1. select * from Table2  
  2. GO 

  --5.删除测试表

  1. drop TABLE Table1  
  2. drop TABLE Table2 

  2.SELECT INTO FROM语句

  语句形式为:SELECT vale1, value2 into Table2 from Table1

  要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中  。

  [查看触发器状态]

  1. select   表名=object_name(parent_obj),触发器名=name     
  2. ,状态=case   status   &   power(2,11)   when   power(2,11)   then   禁用   else   启用   end     
  3. from   sysobjects   
  4. where   type=TR   order   by   表名,状态   

  [修改触发器状态]

  1. --禁用表上的某个trigger  
  2. Alter table outputproducts disable trigger Tr_outputproducts  
  3. Alter table outputproducts enable trigger Tr_outputproducts  
  4. --禁用表上的所有tirgger  
  5. Alter table tablename disable trigger all