`

sqlserver2008查找某数据库中的列是否存在某个值

阅读更多
--2008查找某数据库中的列是否存在某个值
create proc spFind_Column_In_DB
(
    @type int,--类型:1为文字类型、2为数值类型
    @str nvarchar(100)--需要搜索的名字
)
as
    --创建临时表存放结果
    create table #tbl(PK int identity primary key ,tbl sysname,col sysname)
    declare @tbl nvarchar(300),@col sysname,@sql nvarchar(1000)
    if @type=1
    begin
        declare curTable cursor fast_forward
        for
            select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id
            where o.type_desc='user_table' and user_type_id in (167,175,231,239,35,99)
     end
    else
    begin
        declare curTable cursor fast_forward
        for
        select '['+SCHEMA_NAME(SCHEMA_ID)+'].['+o.name+']' tableName,'['+c.name+']' columnName from sys.columns c inner join sys.objects o on c.object_id=o.object_id
            where o.type_desc='user_table' and user_type_id in (56,48,52,59,60,62,106,108,122)
    end
    open curtable
    fetch next from curtable into @tbl,@col
    while @@FETCH_STATUS=0
    begin
        set @sql='if exists (select * from '+@tbl+' where '
        if @type=1
        begin
            set @sql += @col + ' like ''%'+@str +'%'')'
        end
        else
        begin
            set @sql +=@col + ' in ('+@str+'))'
        end

        set @sql += ' INSERT #TBL(tbl,col) VALUES('''+@tbl+''','''+@col+''')'
        --print @sql
        exec (@sql)
        fetch next from curtable into @tbl,@col
    end
    close curtable
    deallocate curtable
    select * from #tbl

--使用例子,查询库中存在aaa这个值的列:
exec  spFind_Column_In_DB  1,'aaa'
分享到:
评论

相关推荐

    SQLserver遍历所有表数据库命令

    在本文中,我们将详细介绍 SQL Server 遍历所有表数据库命令的实现方法和原理。本文将分为三个部分,分别介绍 SQL Server 的系统表和视图、游标的使用和存储过程的应用。 系统表和视图 在 SQL Server 中,有许多...

    SQL Server查找表名或列名中包含空格的表和列实例代码

    本文主要给大家介绍的是关于SQL Server查找包含空格的表和列的相关内容,为什么会有这篇文章,是因为最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是...

    sqlserver中在指定数据库的所有表的所有列中搜索给定的值

    比如:我们导入了某个客户的资料,我们知道此客户的姓名是ZhangShan,我们想知道,在我们的业务数据库(eg:NorthWind)中,有哪些数据表的哪些字段设置了此姓名值ZhangShan,通过下面的SQL,我们就可以实现此目的,此处...

    sql-server中复制数据库某一个表到另一个数据库中

    在网上查找到的资料,只有一条查询语句,我在http://blog.knowsky.com/233359.htm上找到的,将这些进行共享给需要的人

    在数据库中遍历查找某个字符串

    在数据库(所有字符串字段)中遍历查找(海查)某个字符串。

    sql server实现在多个数据库间快速查询某个表信息的方法

    本文实例讲述了sql server实现在多个数据库间快速查询某个表信息的方法。分享给大家供大家参考,具体如下: 最近出来实习,所在公司的服务器有十几个数据库,为了方便根据某个数据表的 表名 快速找到对应的数据库,又...

    Microsoft SQL Server 2005 Express Edition SP3

    默认情况下,不在 SQL Server Express 中安装示例数据库。Northwind 和 pubs 示例数据库可以从 Microsoft 网站进行下载。Adventureworks 示例数据库可从此 Microsoft 网站安装。 [顶部] 3.7“强制加密”配置可能会...

    SqlServer快速检索某个字段在哪些存储过程中(sql 语句)

    本文给大家分享一段sql语句实现SqlServer快速检索某个字段在哪些存储过程中,代码非常简单,需要的朋友参考下

    Delphi超实用的SQLServer 数据库应用函数.rar_delphi_sql server_调用的功能函数

    /* 超实用的Delphi平台上对SQL Server数据库调用的功能函数 */ 一个程序平台内可供不同模块调用的函数库。包括SearchTable (查询表存在与否), ... SearchFieldValue(查找表中指定字段上是否存在某值)....

    Sqlserver2000经典脚本

    下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件...

    sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法

    ‘string_e­xpression2’ 待查找的字符串表达式。string_e­xpression2 可以是字符数据或二进制数据。 ‘string_e­xpression3’ 替换用的字符串表达式。string_e­xpression3 可以是字符数据或二进制数据。 通俗...

    在SQL Server 2005所有表中搜索某个指定列的方法

    有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来。 代码如下: Select O.name objectName, C.name ColumnName from sys.columns C inner join sys....

    分区技术在SQL SERVER和ORACLE中的应用.pdf

    多数情况下,是根据某个特定列中的值进行水平分区,分区的物理位置为多个文件组或者表空间。例如,利用分区表存放一个公司的销售订单时, 可以根据订单日期将订单记录分布到不同的文件组中或表空间中,以使同一年的...

    sqlserver中查找所有包含了某个文本的存储过程

    上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了) 上图通过sqlserver 图形管理器自带的功能查看依赖于mup_GetA的对象。 结果有点雷人,居然没有列出mup_GetB 来(我使用的是sql server 2005) 下面是...

    数据库操作语句大全(sql)

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db ...

    SQLServer聚集索引与非聚集索引讲解[借鉴].pdf

    "SQLServer聚集索引与非聚集索引讲解" 本文主要讲解了SQL Server中的聚集索引和非聚集索引的概念、原理和应用场景。聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)是SQL Server中两种不同的索引...

    SQLServer的性能调优:解决查询速度慢的五种方法

    DMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQL Azure查询性能洞察等相关内容。 本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是内置于其中的所有动态管理视图(DMV)...

    经典SQL脚本大全

    │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ ...

    2022年历年计算机等考四级数据库工程师笔试真题及答案.doc

    本文总结了数据库管理系统的重要组成部分、数据库管理员的维护工作、数据库视图的特性、构造化分析和建模措施、数据字典的特性、约束的类型、散列文献的特性、数据库应当系统顾客界面设计原则、 SQL Server 中的权限...

    Access 2000数据库系统设计(PDF)---025

    101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正...

Global site tag (gtag.js) - Google Analytics