快速业务通道

学习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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号