数据库存储过程、触发器、函数的使用

 数据库存储过程、触发器、函数·创建存储过程CREATE PROCEDURE 存储过程名称Use TESTGOCreate procedure user_insert @uID char(20),@uname varchar(20),@upwd  char(20),@num intAsBegin         While @num>10         Insert into user         Values(@uID,@uname,@upwd)         Set @num=@num+1         Set @uID=@uID+1end 执行存储过程Exec user_insert ‘002’,’jc’,’123456’,0   --循环执行插入10条记录 强化判断user表的userID是否已存在,不存在则加入一条新记录User TESTGOCreate procedure user_in @uID char(20) ,@uname char(20), @upwd char(20)AsBegin         /*判断user表的userID为011是否存在,如果不存在则插入新的记录*/         If not exists (select userID from user where userID=’011’)         Insert into user values(@uID,@uname,@upwd)end执行存储过程Exec user_in ‘011’,’tang’,’123456’  ·创建触发器Create trigger 触发器名称 on 表名Create trigger delete_user_info on userAfter deleteAsBegin         Delete from user_info where userID=(selete userID from deleted)End解析:当删除user表记录时,就会触发delete_user_info触发器,并删除user_info中的对应的userID的记录。(1)       ON关键字后面指定触发器执行的表,after 关键字用于说明触发器在指定操作都成功执行后触发,delete关键字表示删除操作后激活触发器(2)       Deleted表是系统临时表,用于保存已从触发器表中删除的记录,当触发器的一个delete触发器时,被删除的记录存放到deleted表中  ·创建函数CREATE FUNCTION  函数名称(@参数名 类型)Use TESTGOCreate function L_name(@uname char(20))Returns intAsBegin         Declare @sum1         Select  @sum1=count(*) from user where username=@uname         Return @sum1End 执行函数Declare @sum intExec @sum=dbo.L_name(“tang”)Select @sum as “用户名为tang的用户数” 

相关内容推荐