商场采购管理系统 第5页
所插入数据同上这里不一一列举出来了。
创建索引:
use 采购管理系统
create index 商品编号_index
on departments
go
exec sp_helpindex 商品编号_index
创建视图:
create view departments视图(部门编号,部门名称,职能,上级部门编号)
as
select*
from departments
go
select* from departments视图
(2)在建立好的数据表中实现记录和约束条件的的增加、删除和修改;
记录的增加,删除和修改
select
部门名称as departments,
创建人as purchaseorder
into ##123
from departments
update types set 类型编号= '6002'
where 类型分类= 9
上面的一些约束象主关键字,外主关键字约束等的增加,删除和修改的操作我们学过的SQL Server 2005中有很详细的介绍,我就不一一演示出来了。
2.7存储过程与触发器的设计
2.7.1设计一个存储过程
update departments
set 部门编号=''
select * from departments
alter table 学生
add 领导名称 varchar(10)
create procedure proc_领导名称
@部门名称varchar(10),@部门编号varchar(10),@领导名称varchar(10)
as
declare cursor_no_xf cursor
for
select 部门名称,部门编号from departments
where (部门编号 is null or 部门编号=0)
open cursor_no_xf
fetch next from cursor_no_xf into @部门编号,@部门名称
while @@fetch_status=0
begin
select 部门名称,部门编号from departments
update departments set 部门编号=@部门编号 where部门名称=@部门名称 and 领导名称 = @领导名称
fetch next from cursor_no_xf into @部门编号,@部门名称
end
close cursor_no_xf
deallocate cursor_no_xf
2.7.2设计一个触发器
实现表间的级联删除或修改,触发器设计实现表间的级联修改。
create trigger trig_update
on departments
for insert,update
as
declare @部门编号varchar(20),@部门名称varchar(20),@部门职能描述varchar(20),@上级部门编号varchar(20)
select @部门编号= 部门编号,@部门名称= 部门名称,@部门职能描述= 部门职能描述,@上级部门编号= 上级部门编号
from inserted
if update(上级部门编号)
update departments set 上级部门编号=@上级部门编号
where 部门编号= @部门编号
else
if update(部门名称)
update departments set 部门名称= @部门名称where @部门编号= 部门编号
else
print'该列值不能改!'
rollback transaction
print '该数值已成功修改!'
测试:update 部门名称
set 上级部门编号4 =1001 where 部门编号=’1001’
图25
触发器设计实现表间的级联删除
create trigger trig_delete
on departments
for delete
as
declare @t int,@部门编号 char(6)
set @t = 0
select @t = count(部门编号) ,@部门编号 = 部门编号
from deleted
group by 部门编号
if @部门编号='1001'
begin
print('对不起,该条记录不允许删除!')
rollback transaction
end
else
print('OK!已经成功删除该记录了!')
delete from purchaseorder
where 部门编号=@部门编号
update departments
set 部门编号 = 部门编号-@t
delete from departments
where 部门编号 = @部门编号
update departments
set 部门编号 = 部门编号-@t
where 部门编号 = @部门编号
检测:
delete from departments
where 部门编号 = '1001'
图26
3.设计结果与分析
(1) 查询报价编号为“2”的货物的所有采购信息
SELECT *
FROM PurchaseQuote
WHERE 报价编号='2'
图27
(2)查询报价金额在10046元以上的商品编号,客户编号以及报价编号
SELECT 商品编号,客户编号,报价编号
FROM PurchaseQuote
WHERE 报价金额>10046
图28
(3)查询收货订单编号为2003的收货阶段编号以及其所在的编号
SELECT 收货阶段编号,编号
FROM types
WHERE 收货订单编号=2003
图29
(4)查询购买数量大于30的客户编号以及商品编号
SELECT 客户编号,商品编号
FROM PurProductList
图30
(5)查询已经经过审核后并退货的所有商品编号以及客户编号
SELECT 客户编号,商品编号
FROM PurProductList
上一页 [1] [2] [3] [4] [5] [6] 下一页