网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.J2EE应用中与Oracle数据库的连接.
.BLOB/CLOB/LONG/LongRaw数据类型.
.如何在硬碟建置Linux系统之系统设.
.Oracle数据备份与恢复.
.将Oracle与Developer/2000安装在.
.10gR2使用RMAN恢复临时表空间的增.
.Oracle9i 数据库管理实务讲座(二).
.解析:Oracle 10g EM Database C.
.为什么当系统启动到Sendmail时会.
.为PL/SQL包创建ActiveX servers.
.修改ORACLE的DATAFILE文件名.
.Oracle推出首个业界插座式SOA套件.
.Oracle Web应用开发之Apache架设.
.数据库运行在非归档模式下,数据.
.Oracle数据库密码文件的使用与维.
.在Windows上命令行如何手工起停O.
.Oracle数据库环境下数据文件丢失.
.postfix 的 sasl 支持.
.oracle数据库中插入特殊符号&.
.在Oracle 8x中实现自动断开后再连.

分析数据库的依赖关系

发表日期:2008-2-9



  有一个非常好的系统存储过程会帮助你分析数据库的依靠关系,它就是:sp_depends。这个过程会指出哪些数据库对象依靠于对应的数据库对象,和哪些数据库对象为对应的数据库对象引用了。
  
  
   假如所有的对象按依靠顺序创建的,那么这个系统存储过程会更鲁棒。那些依靠于其他对象的对象总是在它们引用的对象之后创建的。
  
   使用这个过程的一个原因是为了确定一个过程或者表的变化的影响。假如你有一个对象,它引用了30个对象,那么很有可能在编码期间,你为了改变这30个对象而须做更多的工作。
  
   下面的脚本展示一个存储过程和一些对象,这个存储过程引用了一些对象,其他对象又引用了这个存储过程。
  
  IF EXISTS(SELECT name
   FROM sysobjects
   WHERE name = N'test_table'
   AND type = 'U')
   DROP TABLE test_table
  GO
  CREATE TABLE test_table (
  c1 VARCHAR(255) NULL)
  GO
  IF EXISTS (SELECT name
   FROM sysobjects
   WHERE name = N'test_proc1'
   AND type = 'P')
   DROP PROCEDURE test_proc1
  GO
  CREATE PROCEDURE test_proc1 @name sysname = NULL
  AS
  IF @name IS NOT NULL
  BEGIN
   INSERT test_table VALUES (@name)
  END
  ELSE
  BEGIN
   RETURN
  END
  GO
  IF EXISTS (SELECT name
   FROM sysobjects
   WHERE name = N'test_proc2'
   AND type = 'P')
   DROP PROCEDURE test_proc2
  GO
  CREATE PROCEDURE test_proc2
  AS
  DECLARE @myVar sysname
  SELECT @myVar = name FROM sysobjects WHERE id = 1
  EXEC test_proc1 @myVar
  GO
  EXEC sp_depends test_proc1
  GO
  DROP PROCEDURE test_proc2, test_proc1
  GO
  DROP TABLE test_table
  GO
上一篇:如何自动加载分区 人气:759
下一篇:Linux 数据库:SQL语法参考手册 人气:705
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐