触发器,存储过程,视图,事务的语法

1、触发器(trigger)

Create trigger User_OnUpdate  
    On user_Users  
    for Update 
As 
    declare @msg nvarchar(50) 
    --@msg记录修改情况 
    select @msg = N'姓名从“' + Deleted.Name + N'”修改为“' + Inserted.Name + '”' from Inserted,Deleted 
    --插入日志表 
    insert into [LOG](MSG)values(@msg) 
      
--删除触发器 
drop trigger User_OnUpdate

2、存储过程( procedure 可简写为 proc

--创建带output参数的存储过程 
CREATE PROCEDURE PR_Sum 
    @a int, 
    @b int, 
    @sum int output
AS
BEGIN
    set @sum=@a+@b 
END
  
--创建Return返回值存储过程 
CREATE PROCEDURE PR_Sum2 
    @a int, 
    @b int
AS
BEGIN
    Return @a+@b 
END
      
--执行存储过程获取output型返回值 
declare @mysum int
execute PR_Sum 1,2,@mysum output
print @mysum 
  
--执行存储过程获取Return型返回值 
declare @mysum2 int
execute @mysum2= PR_Sum2 1,2 
print @mysum2

3、视图(view)

 
 
--创建普通视图
create view View_Classasselect dbo.t_table1.id,dbo.t_table1.name,dbo.t_table2.id,dbo.t_table2.namefrom dbo.t_table1,dbo.t_table2where dbo.t_table1.id = dbo.t_table2.idgo
创建加密视图

create view View_Class
with encryption
as
select dbo.t_table1.id,dbo.t_table1.name,dbo.t_table2.id,dbo.t_table2.name
from dbo.t_table1,dbo.t_table2
where dbo.t_table1.id = dbo.t_table2.id
go

修改视图

alter view View_Class
as
select dbo.t_table1.id,dbo.t_table1.address,dbo.t_table2.id,dbo.t_table2.name
from dbo.t_table1,dbo.t_table2
where dbo.t_table1.id = dbo.t_table2.id
go

修改视图

if object_id('View_Class','view') is not null
drop view View_Class
go

4、事务 以BEGIN TRAN开始,提交的话则COMMIT提交事务,否则以ROLLBACK回滚事务

--定义事务
BEGIN TRAN;
  INSERT INTO dbo.T1(keycol, col1, col2) VALUES(4,101,'C');
  INSERT INTO dbo.T1(keycol, col1, col2) VALUES(4,201,'X');
COMMIT TRAN;





猜你喜欢

转载自blog.csdn.net/zhangxin97/article/details/79025697