zoukankan      html  css  js  c++  java
  • 在SQL2008查找某数据库中的列是否存在某个值

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

    --SQL2008查找某数据库中的列是否存在某个值
    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'

    本文版权归作者所有,未经作者同意不得转载。

  • 相关阅读:
    树链剖分 (模板) 洛谷3384
    ST表 (模板) 洛谷3865
    IOI 2005 River (洛谷 3354)
    IOI 2005 River (洛谷 3354)
    poj1094 Sorting It All Out
    poj1094 Sorting It All Out
    spfa(模板)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    洛谷1850(NOIp2016) 换教室——期望dp
  • 原文地址:https://www.cnblogs.com/lyhabc/p/4150407.html
Copyright © 2011-2022 走看看