【正文】
from Warehouse where 倉位號(hào) =@倉位號(hào) if @庫存數(shù)量 @數(shù)量 1 BEGIN ROLLBACK TRAN print 39。庫存量不足,不允許出庫 39。 END else update [Warehouse] set 庫存數(shù)量 =@庫存數(shù) 量 @數(shù)量 where 倉位號(hào) =@倉位號(hào) END 七、附錄: 部分 代碼 ? 存儲(chǔ)過程: 按 名稱 或 類別 搜索銷售記錄 USE [Medicine] GO /****** Object: StoredProcedure [dbo].[SearchSale] Script Date: 2021/6/15 21:23:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[SearchSale] @藥品名稱 varchar(20), @藥品類別 varchar(20) 17 AS if(@藥品名稱 is null and @藥品類別 is null ) return 6 else if(@藥品名稱 is not null and @藥品類別 is not null ) BEGIN select 銷售編號(hào) ,倉位號(hào) ,藥品名稱 ,藥品類別 ,銷售單價(jià) ,銷售數(shù)量 ,柜臺(tái)號(hào) ,銷售人工號(hào) ,銷售日期 from 銷售情況 where 藥品名稱 =@藥品名稱 and 藥品 類別 =@藥品類別 END if(@藥品名稱 is not null and @藥品類別 is null) select 銷售編號(hào) ,倉位號(hào) ,藥品名稱 ,藥品類別 ,銷售單價(jià) ,銷售數(shù)量 ,柜臺(tái)號(hào) ,銷售人工號(hào) ,銷售日期 from 銷售情況 where 藥品名稱 =@藥品名稱 if(@藥品類別 is not null and @藥品名稱 is null) select 銷售編號(hào) ,倉位號(hào) ,藥品名稱 ,藥品類別 ,銷售單價(jià) ,銷售數(shù)量 ,柜臺(tái)號(hào) ,銷售人工號(hào) ,銷售日期 from 銷售情況 where 藥品類別 =@藥品類別 進(jìn)貨 USE [Medicine] GO /****** Object: StoredProcedure [dbo].[Ware_insert] Script Date: 2021/6/15 21:23:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[Ware_insert] @倉位號(hào) int, @進(jìn)貨編號(hào) int, @庫存數(shù)量 int AS if exists(select * from Warehouse where 倉位號(hào) =@倉位號(hào) ) Rollback TransAction else insert into Warehouse(倉位號(hào) ,進(jìn)貨編號(hào) ,庫存數(shù)量 ) values(@倉位號(hào) ,@進(jìn)貨編號(hào) ,@庫存數(shù)量 ) ? 觸發(fā)器: 18 進(jìn)貨時(shí) 更新庫存表 ( 位于 PutIn 表 ) USE [Medicine] GO /****** Object: Trigger [dbo].[UpIn] Script Date: 2021/6/15 21:28:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[UpIn] ON [dbo].[PutIn] FOR Insert AS declare @倉位號(hào) INT declare @進(jìn)貨編號(hào) INT declare @庫存數(shù)量 INT select @進(jìn)貨編號(hào) =進(jìn)貨編號(hào) from INSERTED select @庫存數(shù)量 =進(jìn)貨數(shù)量 from INSERTED select @倉位號(hào) =(1000*RAND()) begin insert into Warehouse values (@倉位號(hào) ,@進(jìn)貨編號(hào) ,@庫存數(shù)量 ) END 增加 銷售記錄 時(shí)更新 庫存表 (位于 Sale 表) USE [Medicine] GO /****** Object: Trigger [dbo].[Up] Script Date: 2021/6/15 21:29:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[Up] ON [dbo].[Sale] FOR INSERT AS declare @倉位號(hào) int declare @數(shù)量 int declare @庫存數(shù)量 int select @倉位號(hào) =倉位號(hào) 19 from INSERTED if exists(select * from Warehouse where 倉位號(hào) =@倉位號(hào) ) BEGIN select @數(shù)量 =銷售數(shù)量 from INSERTED select @庫存數(shù)量 =庫存數(shù)量 from Warehouse where 倉位號(hào) =@倉位號(hào) if @庫存數(shù)量 @數(shù)量 1 BEGIN ROLLBACK TRAN print 39。庫存量不足,不允許出庫 39。 END else update [Warehouse] set 庫存數(shù)量 =@庫存數(shù)量 @數(shù)量 where 倉位號(hào) =@倉位號(hào) END 八 、心得體會(huì) 這次課程設(shè)計(jì) 我花了半個(gè)星期 的時(shí)間 從 ER 圖 設(shè)計(jì) , 到 數(shù)據(jù)庫 建立,以及觸發(fā)器 , 存儲(chǔ)過程 編寫 ,花 費(fèi)了許多時(shí)間 ,也深刻認(rèn)識(shí)到 設(shè)計(jì) 并創(chuàng)建一個(gè)數(shù)據(jù)庫并不是一件非常簡(jiǎn)單的事情,需要細(xì)心和用心地去設(shè)計(jì)和琢磨每一個(gè)地方,才可以 給 客戶一個(gè)較為完善的數(shù)據(jù)庫。 起初 由于我個(gè)人問題, 課程設(shè)計(jì) 報(bào)告 格式上出了 一些問題,導(dǎo)致被退回重制。 精工 老師多番提醒, 終于出 一個(gè)較為規(guī)范的 設(shè)計(jì)報(bào)告。 我還有很多地方 待改進(jìn),需要更加努力。