zoukankan      html  css  js  c++  java
  • 在当前账户下模糊查询是否有匹配的表以及定位字段是否存在、在哪个表中

    Declare @db varchar(100)
    Declare @dbID int =4
    Declare @tabName varchar(100)='mask'
    Declare @columnName varchar(100) = ''
    Declare @FixDB varchar(100)='ProductDB'
    --在所有的库中找一张表
    while 1=1
    Begin
    Select Top 1 @db=name,@dbID=database_id From  Sys.databases where database_id>@dbID Order by database_id asc
    --如果指定搜索的数据库,则跳过所有非指定数据库
    If (@FixDB<>@db And  LEN(@FixDB)>2)
    Continue
    Begin try
    if(LEN(@tabName)>0)
    exec ( 'If Exists( Select '''+@db+''',* From '+@db+'.sys.tables(Nolock) where name like  ''%'+@tabName+'%'' )
    Select '''+@db+''' DBName,* From '+@db+'.sys.tables(Nolock) where name like  ''%'+@tabName+'%''
    ')
    if(LEN(@columnName)>0)
    exec ( 'If Exists( Select C.name,O.name From '+@db+'.sys.columns(Nolock)  C
    Inner Join '+@db+'.sys.objects O on C.object_id=O.object_id
    where C.name like ''%'+@columnName+'%'')
    Select '''+@db+''' DBName,O.name TableName,C.name ColumName From '+@db+'.sys.columns(Nolock)  C
    Inner Join '+@db+'.sys.objects O on C.object_id=O.object_id
    where C.name like ''%'+@columnName+'%''
     '
    )
    End try
    Begin catch
    Print @db
    End catch
    
    If (@FixDB=@db And  LEN(@FixDB)>2)--如果当前是指定的数据库,说明已经运行结束,跳出循环。
    Break
    IF((Select max(database_id) From  Sys.databases )=@dbID) --如果当前运行结束的数据库是最后一个,则说明运行结束,退出循环
    break
    End
    

      

  • 相关阅读:
    node版本切换工具n的使用介绍
    nrm -- npm镜像源管理
    npm vs npx
    Dnsmasq MacOS使用介绍
    Java动态生成类以及动态添加属性
    mysql表名忽略大小写问题记录
    psotgresql之大小写
    java 按字节读写二进制文件(Base64编码解码)
    java解析复杂json:JSONObject 和 JSONArray的使用
    URL编码:怎样读取特殊字符
  • 原文地址:https://www.cnblogs.com/thaughtZhao/p/4311350.html
Copyright © 2011-2022 走看看