网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.SQL SERVER 2005中同义词实例.
.轻松掌握数据库的具体分类及其相.
.用存储过程几个最直接的好处.
.sql server 添加数据库的方法.
.对外连接的表加上条件后将会使外.
.SQL Server 2008性能和扩展.
.如何随机选取n条记录或者对记录作.
.在SQL Server 2005数据库中进行错.
.sql 语句对时间操作的总结.
.如何正确的使用or展开来改写SQL查.
.跟日期有关的两条经典SQL语句.
.SQL语句性能调整原则.
.SQL Server连接失败错误故障的分.
.关于提高mssql的查询效率.
.关于SQL Server 2000对XML支持的.
.SQL Server的Collate语句需注意.
.如何在 SQL Server 2005 中使用 .
.每晚12:20触发存诸过程.
.SQL Server数据库:虚拟化 VS 多.
.SQL Server 2000的视图中必须小心.

SQL Server 存储过程嵌套示例

发表日期:2007-4-20


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
上一篇:快速清除SQLServer日志的两种方法 人气:3682
下一篇:SQL SERVER 2000 安装(症状归纳)到2007.04.19 人气:3577
浏览全部存储过程嵌套的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐