`

实用的存储过程

阅读更多

jackey  2009.06.26 实例 存储过程
实现功能:根据用户输入的信息查找出 信息所在的的表 和信息所在的字段

测试方法 3种:
searchname '52150000010000000002'
exec  searchname '52150000010000000002'
execute searchname '52150000010000000002'


存储过程
CREATE procedure searchname @sname varchar(10)

As

begin

create table #TableList(
tablename char(200),
colname char(200)
)


declare @table varchar(200)
declare @col varchar(200)

--set nocount on

declare curTab scroll cursor for select name from sysobjects where xtype='u'

open curTab

fetch next from curTab into @table

while @@FETCH_STATUS=0

   begin

      declare curCol scroll cursor for select name from syscolumns where (xtype=175 or xtype=167) and (id in (select id from sysobjects where name=@table))
      open curCol
     fetch next from curCol into @col

    while @@FETCH_STATUS=0
       begin
         print('insert into #TableList select
'''+@table+''','''+@col+''' from '+@table+' where '+@col+'='''+@sname+'''')
         execute('insert into #TableList select
'''+@table+''','''+@col+''' from '+@table+' where '+@col+'='''+@sname+'''')
        fetch next from curCol into @col
      end
     close curCol
    deallocate curCol

   fetch next from curTab into @table

   end

  close curTab
  deallocate curTab

-- set nocount off

select distinct * from #TableList

drop table #tablelist

end
GO

 

 


实用的存储过程之二
笔者工作的公司采用的是SQLServer数据库,每天都要处理大量的数据,由于笔者进公司的时间比较晚,公司现有的大部分的程序都是以前的程序员留下的,因为他们没有相关的文档,笔者对于后台数据库的很多表的结构和数据都不甚了解,给日常的维护造成了很大的麻烦。

在对后台数据库进行研究的过程中,我需要得到数据库的某些相关信息,比如,公司的数据库中有几个表存放笔者的个人资料,像人事表、工资表、部门表等等,但具体是哪些表,就不是很清楚了,如果要一个一个表地找,可能天亮了也找不完,所以我决定做一个通用的存储过程,能对当前数据库所有字符型字段进行遍历,找出精确匹配含有要查找字符串的表和字段,并且罗列出来。比如,人事表的Name字段,工资表的Salary_Name字段,部门表的Employe_Name字段都有笔者的名字,我希望能把这些找出来。存储过程如下:


调用很简单,如想找笔者的名字,调用SearchName ‘forgot2000’即可,查找速度视乎当前数据库的大小而定。希望这个存储过程能对大家有所帮助吧。本人E-mail:coolforgot@sina.com,QQ:33563255,希望能跟大家共同交流,谢谢!

本存储过程在SQLServer7.0/2000下通过。

 

分享到:
评论

相关推荐

    INFORMIX最新实用存储过程编写.doc

    Informix存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列的SQL和控制流程语句,打包成一个可重复使用的单元,以便在需要时调用。在INFORMIX环境下,存储过程的编写涉及多个方面,包括环境配置、...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    db2 存储过程语法与实例

    下面我们将详细探讨DB2存储过程的语法、创建、调用以及一些实用实例。 1. **存储过程的语法** 创建DB2存储过程的基本语法如下: ```sql CREATE PROCEDURE procedure_name (IN input_param1 datatype, INOUT ...

    存储过程参数查看器存储过程助手

    存储过程参数查看器和存储过程助手是两个非常实用的工具,它们帮助数据库管理员(DBA)和开发人员更有效地管理和调试存储过程。 1. **存储过程**: - 存储过程是由用户创建的一组SQL语句,保存在数据库中,可以多...

    存储过程实用例子

    【存储过程实用例子】 存储过程是数据库管理系统中的一个重要概念,它是预先编译好的一组SQL语句,可以在需要时被调用执行,以实现特定的功能。本文将深入探讨存储过程的基本知识、功能、优点以及分类,并展示如何...

    高效分页存储过程 高效分页存储过程

    本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数:当前页码(PageNumber)和每页记录数(PageSize)。...

    Sql Server 存储过程的导出导入.doc

    在SQL Server中,存储过程是一种预编译的SQL语句...在实际应用中,存储过程的导出和导入非常实用,例如在数据库迁移、备份恢复、开发测试和版本控制等场景。熟练掌握这项技能,可以提高数据库管理的效率和数据安全。

    db2look导出存储过程脚本

    为了更好地管理和维护数据库中的对象(如存储过程、触发器等),DB2 提供了一系列实用工具,其中 db2look 就是一款用于导出数据库对象定义(包括存储过程)的强大工具。 #### 一、DB2 SYSCAT.ROUTINES 目录选取 在...

    C# 导出存储过程 支持模糊查询

    在IT行业中,数据库管理和数据操作是至关重要的环节,而存储过程是数据库系统中一个非常实用的功能,它允许程序员和DBA预编译一系列SQL语句并封装为一个可重复使用的单元。本文将深入探讨如何使用C#语言来导出存储...

    ORACLE存储过程学习源码

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行复杂的业务逻辑和数据操作。这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,...

    实用的数据库赋权和同义词的存储过程,用于oracle

    本存储过程集旨在提供一个实用的解决方案,以简化和优化这两个领域的操作。 首先,让我们深入理解"赋权"(Privileges)。在Oracle中,权限是指授予用户或角色执行特定数据库操作的能力。这些操作可能包括插入数据、...

    delphi调用Oracle的存储过程

    ### Delphi调用Oracle的存储过程 在软件开发过程中,Delphi作为一种强大的开发工具,能够高效地与多种数据库系统进行交互。本篇文章将详细介绍如何在Delphi中调用Oracle数据库中的存储过程,并通过一个具体的例子来...

    SQL Server数据库实验_存储过程与触发器设计.docx

    在SQL Server数据库中,存储过程和触发器是两种重要的数据库对象,它们在数据管理与业务逻辑处理中扮演着关键角色。 存储过程是预编译的SQL语句集合,它可以包含一系列的数据操作,如查询、更新、插入和删除等。...

    Oracle存储过程超详细使用手册

    Oracle 存储过程超详细使用手册 Oracle 存储过程是一种强大的数据库工具,它可以将复杂的业务逻辑封装在数据库中,从而提高数据的安全性和一致性。本手册将详细介绍 Oracle 存储过程的使用方法,涵盖了创建存储过程...

    MSSQL存储过程生成工具

    首先,存储过程生成工具是数据库开发中的实用助手,它们能够自动生成存储过程的代码,减少手动编写的工作量。这款“MSSQL存储过程生成器”特别之处在于,它不仅能够生成存储过程,还包含了回滚功能和导出功能,这...

    存储过程比较工具

    "存储过程比较工具"就是这样一个实用的辅助软件。它能分析两个数据库中的所有存储过程,找出它们之间的差异,包括但不限于定义的不同、参数的变化、逻辑结构的调整等。这些差异可以通过图形化界面清晰地展示出来,...

    oracle 存储过程批量提交

    批量提交是存储过程中一个非常实用的功能,尤其是在处理大量数据时能够显著提高系统的整体效率。 #### 一、Oracle存储过程的基本概念 存储过程是由一系列SQL语句和过程化SQL语句(如循环、条件判断等)组成的单元...

    sql server 存储过程100例

    在这个“SQL Server 存储过程100例”中,你将深入理解存储过程的多样性和实用性,超过100个示例将帮助你轻松掌握这个强大的功能。 1. **基础概念**: - 存储过程是数据库对象,由一系列SQL语句组成,可被多次调用...

    存储过程生成器

    SQL存储过程生成器是一款实用工具,它主要针对SQL Server数据库,旨在简化开发人员在数据库管理中的工作。存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,如创建、读取、更新和删除(CRUD)数据,以...

Global site tag (gtag.js) - Google Analytics