欢迎光临
我们一直在努力

sql server 存储过程嵌套示例_数据库技巧

建站超值云服务器,限时71元/月

1)        事例数据库表:
企业信息表














































表名称

prd_wxt_enterprise_tbl_EnterpriseInfo

数据来源

 

存储数据

企业信息表

主键/外键

 

字段名称

说明

类型(精度范围)

备注

cEnterpriseId

n          企业ID

Char(10)

 

sEnterpriseName

n          企业名称

Varchar(200)

 

sShortName

n          简称

Varchar(50)

 

sAddress

n          地址

nVarchar(200)

 

E_system

n          企业所属系统(0新系统,空或1为旧系统)

Char(1)

 


产品表
























































表名称

Shop_tbl_ProductInfo

数据来源

 

存储数据

产品表

主键/外键

 

字段名称

说明

类型(精度范围)

备注

P_Code(PK)

n          产品SKU号,即下单号,产品系统编号(p123456789)

Char(10)

not null

EnterpriseId

n          企业ID

Char(10)

not null

P_Name

n          产品名称

Nvarchar(100)

not null

P_Price

n          产品价格(单位元)

Money

 

P_UserPrice

n          产品会员价(单位元)

Money

 

Remark

n          备注

Nvarchar(500)

 

 

 

 

 

2)        要实现的功能:
删除旧企业数据及相关的产品,要求用嵌套存储过程实现
3)        存储过程:包括两个存储过程
a)         存储过程一:根据企业ID,删除该企业及下面的产品:
存储过程代码如下:
/*
功能:删除企业,同时删除关联的表,包括企业表及其关联的产品表数据
创建人:
创建日期:2007-4-10
修改日期:2007-4-10
*/
CREATE PROCEDURE [DeleteEnterprise]
(
 @EnterpriseID nvarchar(10)
)
AS
declare @strSQL nvarchar(4000)
–删除企业产品表
select @strSQL = “delete from Shop_tbl_ProductInfo where EnterpriseId=”+@EnterpriseID+”“;
exec(@strSQL)
–删除企业表
select @strSQL = “delete from prd_wxt_enterprise_tbl_EnterpriseInfo where cEnterpriseID=”+@EnterpriseID+”“;
exec(@strSQL)
GO
b)        存储过程二:选出旧企业的数据,然后通过循环嵌套的方式,通过循环语句调用存储过程一,删除所有的旧企业数据及其产品数据
存储过程代码如下:
/*
功能:删除旧企业数据,同时删除关联的表,包括
创建人:
创建日期:2007-4-11
修改日期:2007-4-11
*/
CREATE PROCEDURE [DeleteOldEnterprise]
AS
 
declare @strSQL nvarchar(4000)
declare @EnterpriseID nvarchar(10)
 
DECLARE Enterprise_CURSOR Cursor FOR
Select cEnterpriseId from prd_wxt_enterprise_tbl_EnterpriseInfo where e_system=1 or e_system is null
 
OPEN Enterprise_CURSOR
Fetch next from Enterprise_CURSOR
into @EnterpriseID
 
–以下一直到END都是循环语句
WHILE @@FETCH_STATUS = 0
BEGIN
–下面这行是调用存储过程一删除企业及其产品数据
exec DeleteEnterprise @EnterpriseID
 
Fetch next from Enterprise_CURSOR
into @EnterpriseID
 
END
 
CLOSE Enterprise_CURSOR
DEALLOCATE Enterprise_CURSOR
 
GO

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » sql server 存储过程嵌套示例_数据库技巧
分享到: 更多 (0)