学习SQL2005当中的例子
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
/*例8-1 创建一个带有SELECT语句的简单过程,该存储过程返回所有员工姓名,Email地址,电话等。该存储过程不使用任何参数*/ /*程序清单如下*/ USE adventureworks GO CREATE PROCEDURE au_infor_all AS SELECT lastname, firstname, emailaddress, phone FROM person.contact GO /*例8-3 创建一个带有参数的简单存储过程,从视图中返回指定的雇员(提供名和姓)及其职务和部门名称,该存储过程接受与传递的参数精确匹配的值*/ /*程序清单如下*/ CREATE PROCEDURE GetEmployees @lastname varchar(40), @firstname varchar(20) AS SELECT LastName, FirstName, JobTitle, Department FROM HumanResources.vEmployeeDepartment WHERE FirstName = @firstname AND LastName = @lastname; GO /*例9-2 创建一个触发器,在 s 表上创建一个插入、更新类型的触发器*/ /*程序清单如下*/ CREATE TRIGGER tr_s ON s FOR INSERT, UPDATE AS Begin DECLARE @bh varchar(6) SELECT @bh =inserted.sno FROM inserted /*获取插入或更新操作时的新值(学号)*/ End /*例9-3建立一个触发器,当向sc表中添加数据时,如果添加的数据与s表中的数据不匹配(没有对应的学号),则将此数据删除*/ /*程序清单如下*/ CREATE TRIGGER sc_ins ON sc FOR INSERT AS BEGIN DECLARE @bh char(10) Select @bh=Inserted.sno from Inserted If not exists(select sno from s where s.sno=@bh) Delete sc where sno=@bh END /*例9-5 创建一个修改触发器,该触发器防止用户修改表s的入学成绩*/ /*程序清单如下*/ create trigger tri_s_upd on sc for update as if update(score) begin raiserror(''不能修改入学成绩'',16,10) rollback transaction end go /*例9-8 建立一个与s表结构一样的表s1,当删除表s中的记录时,自动将删除掉的记录存放到s1表中*/ /*程序清单如下*/ CREATE TABLE [dbo].[s1]( [birthday] [datetime] NULL, [sno] [char](10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TRIGGER tr_del ON s /*建立触发器*/ FOR DELETE /*对表删除操作*/ AS insert s1 select * from deleted /*将删除掉的数据送入表s1中*/ GO /*例-9当删除表s中的记录时,自动删除表sc中对应学号的记录*/ /*程序清单如下*/ CREATE TRIGGER tr_del_s ON s FOR DELETE AS BEGIN DECLARE @bh char(10) Select @bh=deleted.sno from deleted Delete sc where sno=@bh END |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于学习SQL2005当中的例子的所有评论