📄 系统源脚本文件.sql
字号:
USE MASTER /* 系统主数据库 */
GO
CREATE DATABASE Stock collate Chinese_PRC_CS_AI_WS /* 创建数据库Stock */
GO
USE Stock
GO
CREATE TABLE Users /* 创建用户信息表 */
(
UserName varchar(40) collate Chinese_PRC_CS_AI_WS PRIMARY KEY, /* 用户名称 */
Pwd varchar(40) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 密码 */
User_Type tinyint NOT NULL /* 用户类型 */
)
GO
INSERT INTO Users Values('Admin', '888888', 1) /* 系统管理人员 */
GO
CREATE TABLE Client /* 创建客户信息表 */
(
Cid int PRIMARY KEY IDENTITY, /* 客户编号 */
Cname varchar(50) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 客户名称 */
Ctype tinyint, /* 客户类型,1-供应商,2-购买商 */
Contact varchar(30) collate Chinese_PRC_CS_AI_WS, /* 联系人 */
Address varchar(50) collate Chinese_PRC_CS_AI_WS, /* 通信地址 */
Postcode varchar(10) collate Chinese_PRC_CS_AI_WS, /* 邮政编码 */
Phone varchar(30) collate Chinese_PRC_CS_AI_WS, /* 联系电话 */
Fax varchar(30) collate Chinese_PRC_CS_AI_WS, /* 传真电话 */
Memo varchar(100) collate Chinese_PRC_CS_AI_WS /* 备注信息 */
)
GO
CREATE TABLE Product /* 创建产品信息表 */
(
Pid int PRIMARY KEY IDENTITY, /* 产品编号 */
Pname varchar(50) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 产品名称 */
TypeId int, /* 产品类型编号 */
Pstyle varchar(50) collate Chinese_PRC_CS_AI_WS, /* 产品规格 */
Punit varchar(10) collate Chinese_PRC_CS_AI_WS, /* 计量单位 */
Pprice decimal(15, 2), /* 参考价格 */
Plow int, /* 产品数量下限 */
Phigh int, /* 产品数量上限 */
Valid int, /* 有效期 (以天为单位) */
AlarmDays int /* 在到达有效期前几天发出警告 */
)
GO
CREATE TABLE Storehouse /* 创建仓库信息表 */
(
Sid int PRIMARY KEY IDENTITY, /* 仓库编号 */
Sname varchar(50) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 仓库名称 */
Memo varchar(100) collate Chinese_PRC_CS_AI_WS /* 备注信息 */
)
GO
CREATE TABLE ProType /* 创建产品类别信息表 */
(
TypeId int PRIMARY KEY IDENTITY, /* 产品类别编号 */
TypeName varchar(50) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 产品类别名称 */
UpperId int /* 上级产品类别 (如果说 UpperId = 0, 则表示此产品类别为一级类别) */
)
GO
CREATE TABLE ProInStore /* 创建产品存储信息表 */
(
SpId int PRIMARY KEY IDENTITY, /* 存储编号 */
Pid int NOT NULL, /* 产品编号 */
Pprice decimal(15, 2), /* 产品入库单价 */
Pnum int, /* 产品数量 */
MakeDate char(10) collate Chinese_PRC_CS_AI_WS, /* 生产日期 */
Sid int /* 仓库编号 */
)
GO
CREATE TABLE StoreIn /* 创建入库信息表 */
(
SiType varchar(20) collate Chinese_PRC_CS_AI_WS, /* 入库操作类型,包括采购入库、生产入库、退货入库、退料入库等 */
Pid int, /* 入库产品编号 */
MakeDate char(10) collate Chinese_PRC_CS_AI_WS, /* 生产日期 */
Pprice decimal(15,2), /* 入库产品单价 */
Pnum int, /* 入库产品数量 */
Cid int, /* 客户编号 */
Sid int, /* 仓库编号 */
EmpName varchar(50) collate Chinese_PRC_CS_AI_WS, /* 经办人 */
OptDate char(10) collate Chinese_PRC_CS_AI_WS /* 入库日期 */
)
GO
CREATE TABLE TakeOut /* 创建出库信息表 */
(
Ttype varchar(20) collate Chinese_PRC_CS_AI_WS NOT NULL, /* 出库操作类型,包括销售出库、退货出库、用料出库等 */
Pid int, /* 出库产品编号 */
Pprice decimal(15,2), /* 出库产品单价 */
Pnum int, /* 出库产品数量 */
Cid int, /* 客户编号 */
Sid int, /* 仓库编号 */
EmpName varchar(50) collate Chinese_PRC_CS_AI_WS, /* 经办人 */
OptDate char(20) collate Chinese_PRC_CS_AI_WS /* 出库产品日期 */
)
GO
CREATE TABLE Privilege /* 创建系统权限表 */
(
UserName varchar(40) collate Chinese_PRC_CS_AI_WS PRIMARY KEY, /* 用户名称 */
privClient bit, /* 客户信息管理权限 */
privStock bit, /* 仓库信息管理权限 */
privProType bit, /* 产品类别信息管理权限 */
privProduct bit, /* 产品信息管理权限 */
privStockIn bit, /* 入库操作管理权限 */
privStockOut bit, /* 出库操作管理权限 */
privCheckMan bit, /* 库存盘点操作管理权限 */
privBackup bit, /* 数据库备份操作权限 */
privRestore bit /* 数据库恢复操作权限 */
)
GO
CREATE TABLE SysLog /* 创建系统日志表 */
(
LogId bigint PRIMARY KEY IDENTITY, /* 日志编号 */
LogDate char(10) collate Chinese_PRC_CS_AI_WS, /* 事件发生日期 */
LogTime char(10) collate Chinese_PRC_CS_AI_WS, /* 事件发生时间 */
LogType tinyint, /* 事件类型 */
Title varchar(100) collate Chinese_PRC_CS_AI_WS, /* 事件标题 */
Body varchar(500) collate Chinese_PRC_CS_AI_WS, /* 事件内容 */
UserName varchar(40) collate Chinese_PRC_CS_AI_WS /* 操作用户名 */
)
GO
CREATE VIEW dbo.v_StoreIn /* v_StoreIn */
AS
SELECT p.Pid, SUM(i.Pnum) AS SumNum, SUM(i.Pnum * i.Pprice)
AS SumPrice
FROM dbo.Product p INNER JOIN
dbo.StoreIn i ON p.Pid = i.Pid
GROUP BY p.Pid
GO
CREATE VIEW dbo.v_TakeOut /* v_TakeOut */
AS
SELECT p.Pid, SUM(t.Pnum) AS SumNum, SUM(t.Pnum * t.Pprice)
AS SumPrice
FROM dbo.Product p INNER JOIN
dbo.TakeOut t ON p.Pid = t.Pid
GROUP BY p.Pid
GO
CREATE VIEW dbo.Valid /* Valid */
AS
SELECT dbo.ProInStore.SpId AS 库存记录编号, dbo.Product.Pname AS 产品名称,
dbo.ProInStore.Pprice AS 产品价格, dbo.ProInStore.Pnum AS 产品数量,
dbo.ProInStore.MakeDate AS 生产日期, dbo.Storehouse.Sname AS 仓库名称,
ROUND(DATEDIFF(day, DATEADD(day, dbo.Product.Valid, dbo.ProInStore.MakeDate),
GETDATE()), 0) AS 距离失效期的天数
FROM dbo.ProInStore INNER JOIN
dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid AND DATEDIFF(day,
GETDATE(), dbo.ProInStore.MakeDate)
>= dbo.Product.Valid - dbo.Product.AlarmDays INNER JOIN
dbo.Storehouse ON dbo.ProInStore.Sid = dbo.Storehouse.Sid
GO
CREATE VIEW dbo.v_ProInStore /* v_ProInStore */
AS
SELECT p.Pid, SUM(s.Pnum) AS SumNum
FROM dbo.Product p INNER JOIN
dbo.ProInStore s ON p.Pid = s.Pid
GROUP BY p.Pid
GO
CREATE VIEW dbo.Total_Num /* Total_Num */
AS
SELECT dbo.ProInStore.Pid, SUM(dbo.ProInStore.Pnum) AS Total
FROM dbo.ProInStore INNER JOIN
dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid
GROUP BY dbo.ProInStore.Pid
GO
CREATE VIEW dbo.Report2 /* Report2 */
AS
SELECT SiType, Pid, Pprice, Pnum, (Pprice * Pnum) As Amount, Cid, Sid, EmpName, OptDate FROM StoreIn
UNION
SELECT Ttype, Pid, Pprice, Pnum, (Pprice * Pnum) As Amount, Cid, Sid, EmpName, OptDate FROM TakeOut
GO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -