⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 供销商管理.sql

📁 毕业设计作品--超市管理系统
💻 SQL
字号:
use DB_SMS
go

-----------------------------------------------------
--1. proc_getProviderInfo
--功能:查询供货商信息
--输入:供货商名称,商品分类或开始和结束日期	
--输出:供货商信息(TB_PROVIDER, TB_STOCK_SHEET, TB_SUPPLY, TB_GOODS_TYPE),
-----------------------------------------------------
exec proc_getProviderInfo 'P'
if exists (select 1 from sysobjects where name = 'proc_getProviderInfo')
	drop procedure proc_getProviderInfo
go
create procedure proc_getProviderInfo
	@proName varchar(30) = '',		--供货商名称
	@gtName varchar(20) = ''		--商品类型名
as
	if @proName != ''
		--根据供货商名称查询
		select pro.proId, proName, proLinkName, proTelephone, gtName
		from TB_PROVIDER as pro left join TB_SUPPLY as sup on pro.proId = sup.proId, TB_GOODS_TYPE as gt
		where sup.gtId = gt.gtId and proName like '%'+ @proName + '%'
	else if @gtName != ''
		--根据商品类型名查询
		select pro.proId, proName, proLinkName, proTelephone, gtName
		from TB_PROVIDER as pro, TB_SUPPLY as sup, TB_GOODS_TYPE as gt
		where pro.proId = sup.proId and sup.gtId = gt.gtId and gtName like '%' + @gtName + '%'
	else 
		--获取商品信息
		select pro.proId, proName, proLinkName, proTelephone, gtName
		from TB_PROVIDER as pro, TB_SUPPLY as sup, TB_GOODS_TYPE as gt
		where pro.proId = sup.proId and sup.gtId = gt.gtId
go


-----------------------------------------------------
--2. proc_addProvider
--功能:添加供货商
--输入:供货商编号,供货商名称,联系人,电话,提供商品类别
--输出:成功或失败信息
-----------------------------------------------------
if exists (select 1 from sysobjects where name = 'proc_addProvider')
	drop procedure proc_addProvider
go
create procedure proc_addProvider
	@proId varchar(17),			--供货商编号
	@proName varchar(30),		--供货商名称
	@proLinkName varchar(10),	--联系人
	@proTelephone varchar(30),	--联系电话
	@goodsList varchar(100),	--商品类型列表
	@state int output			--输出状态
as
	begin transaction 
	declare @errorSum int	--错误累计
	set @errorSum = 0
	--插入供货商信息
	insert into TB_PROVIDER values(@proId, @proName, @proLinkName, @proTelephone)
	set @errorSum = @errorSum + @@error
	print @errorSum
	--循环从商品类型列表中获取商品类型,并进行添加
	declare @gtName varchar(20)	--商品类型名
	declare @pos int	--逗号出现的位置
	declare @start int	--开始截取的位置
	set @start = 1
	set @pos = charindex(',', @goodsList, 0)
	declare @lastSupId varchar(17)
	set @lastSupId = '1'
	while (@pos <> 0)
	begin
		set @gtName = substring(@goodsList, @start, @pos - @start)
		set @start=@pos +1	
		set @pos=charindex(',', @goodsList, @pos+1)
		--根据商品类型名获取商品类型编号
		declare @gtId varchar(17)
		select @gtId=gtId from TB_GOODS_TYPE where gtName = @gtName
		--添加商品类型
		declare @supId varchar(17)      
		while 1=1
		begin                            
			exec proc_createID 'SUP', @supId output
			if @supId <> @lastSupId
				begin
				set @lastSupId = @supId
				break
				end
		end

		insert into TB_SUPPLY values(@supId, @proId, @gtId)
		set @errorSum = @errorSum + @@error
	end
		
	if @errorSum <> 0
	begin
		--回滚事务
		rollback transaction
		set @state = 0
	end
	else 
	begin
		--提交事务
		commit transaction
		set @state = 1
	end
go

-----------------------------------------------------
--3. proc_updateProvider
--功能:修改供货商
--输入:供货商编号,供货商名称,联系人,电话,提供商品类别
--输出:成功或失败信息
-----------------------------------------------------
if exists (select 1 from sysobjects where name = 'proc_updateProvider') 
	drop procedure proc_updateProvider
go
create procedure proc_updateProvider
	@proId varchar(17),			--供货商编号
	@proName varchar(30),		--供货商名称
	@proLinkName varchar(10),	--联系人
	@proTelephone varchar(30),	--联系电话
	@goodsList varchar(100),	--商品类型列表
	@state int output			--输出状态
as
	begin transaction 
	declare @errorSum int	--错误累计
	set @errorSum = 0
	--修改供货商信息
	update TB_PROVIDER set proName = @proName, 
		proLinkName = @proLinkName, proTelephone = @proTelephone
		where proId = @proId
	set @errorSum = @errorSum + @@error
	print @errorSum	
	--删除供销商的供货信息
	delete from TB_SUPPLY where proId = @proId
	--循环从商品类型列表中获取商品类型,并进行添加
	declare @gtName varchar(20)	--商品类型名
	declare @pos int	--逗号出现的位置
	declare @start int	--开始截取的位置
	set @start = 1
	set @pos = charindex(',', @goodsList, 0)
	declare @lastSupId varchar(17)
	set @lastSupId = '1'
	while (@pos <> 0)
	begin
		set @gtName = substring(@goodsList, @start, @pos - @start)
		set @start=@pos +1	
		set @pos=charindex(',', @goodsList, @pos+1)
		--根据商品类型名获取商品类型编号
		declare @gtId varchar(17)
		select @gtId=gtId from TB_GOODS_TYPE where gtName = @gtName
		--添加商品类型
		declare @supId varchar(17)      
		while 1=1
		begin                            
			exec proc_createID 'SUP', @supId output
			if @supId <> @lastSupId
				begin
				set @lastSupId = @supId
				break
				end
		end
		insert into TB_SUPPLY values(@supId, @proId, @gtId)
		set @errorSum = @errorSum + @@error
	end
		
	if @errorSum <> 0
	begin
		--回滚事务
		rollback transaction
		set @state = 0
	end
	else 
	begin
		--提交事务
		commit transaction
		set @state = 1
	end
go

select * from tb_goods_type
select * from tb_provider
select * from tb_supply

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -