当前位置:首页 > SQL Server 数据库试题与答案A卷
go
create table 学生信息 (
学号 varchar(20) NOT NULL PRIMARY KEY, 姓名 varchar(20) NOT NULL , 性别 varchar(10) NOT NULL, 籍贯 varchar(20) NOT NULL, 班级编号 varchar(20) NOT NULL ) go
create table 成绩表 (
学号 varchar(20) NOT NULL FOREIGN KEY REFERENCES 学生信息(学号),
课程编号 varchar(20) NOT NULL,
成绩 numeric(5,2) DEFAULT (0) CHECK(成绩)=0 and 成绩<=100) 是否重修 varchar(8) NOT NULL ) go
2、在分销系统数据库中, 有以下两张表:
入库单明细表(入库单号 varchar(20),序号 int,采购订单编号 varchar(20),商品编码 varchar (20),商品名称 varchar(50),规格型号 varchar(100),单位 varchar(8))
入库单(入库单号 varchar(20),日期 datetime ,供应商编码 varchar(20),供应商名称 varchar(100),联系人 varchar(20),联系电话 varchar(50),总金额 numeric(12,4),备注 varchar(500))
使用Transact—SQL语言创建存储过程,更新指定入库单号的指定商品编码的单价为指定价格,并更新金额,同时也要更新该入库单主表的总金额。(金额=单价*数量)
CREATE PROCEDURE rkje
@rkdh varchar(20), @spbm varchar(20), @dj numeric(12,2) As
begin transaction
update 入库单明细表 set 单价=@dj
where 入库单号=@rkdh and 商品编码=@spbm update 入库单明细表 set 金额=数量*单价 where 入库单号=@rkdh and 商品编码=@spbm
update 入库单主表 set 总金额=(select sum(金额) as zje from 入库明细表 where 入库单号=@rkdh) where 入库单号=@rkdh If @@Error<>0 BEGIN
ROLLBACK TRANSACTION END ELSE BEGIN
COMMIT END
TRANSACTION
共分享92篇相关文档