zoukankan      html  css  js  c++  java
  • sqlserver 全库查询 带架构

    网上现有的全库查询,无法识别自定义架构的数据库结构:

    declare @str nvarchar(10)
    declare @tablename varchar(50)
    declare @colname varchar(50)
    declare @counts int
    declare @sql nvarchar(2000)--以上定义变量
    declare cur1 cursor for 
    select a.name tablename,B.name colname from sys.objects a,syscolumns b where a.object_id=b.id and a.type_desc='USER_TABLE'--定义游标
    set @str='' --设置要查找的字符
    Open cur1 --打开游标
    Fetch next From cur1 Into @tablename,@colname
    While(@@Fetch_Status = 0) --循环
    Begin
    set @sql=N'select  @counts=COUNT(*) from ' + @tablename + '   where  charindex('''+@str+''','+@colname+')>0'
    exec sp_executesql @sql,N'@counts int output',@counts output --执行动态sql
    if @counts>0 --判断某个表某个字段是否存在特定字符
    begin
    print @tablename+','+@colname --打印表名及字段名
    end
    Fetch next From cur1 Into @tablename,@colname
    End
    Close cur1 --关闭游标
    Deallocate cur1 --释放游标

    添加架构支持后,虽偶尔会有报错,可查询架构:

    declare @str nvarchar(10)
    declare @schemasname varchar(50)
    declare @tablename varchar(50)
    declare @colname varchar(50)
    declare @counts int
    declare @sql nvarchar(2000)--以上定义变量
    declare cur1 cursor for 
    select s.name schemasname,a.name tablename,B.name colname from sys.objects a,syscolumns b,sys.schemas s 
    where a.object_id=b.id and a.schema_id=s.schema_id and a.type_desc='USER_TABLE'--定义游标
    set @str='污染' --设置要查找的字符
    Open cur1 --打开游标
    Fetch next From cur1 Into @schemasname,@tablename,@colname
    While(@@Fetch_Status = 0) --循环
    Begin
    set @sql=N'select  @counts=COUNT(*) from ' + @schemasname + '.'+ @tablename + '   where  charindex('''+@str+''','+@colname+')>0'
    exec sp_executesql @sql,N'@counts int output',@counts output --执行动态sql
    if @counts>0 --判断某个表某个字段是否存在特定字符
    begin
    print @schemasname+','+@tablename+','+@colname --打印表名及字段名
    end
    Fetch next From cur1 Into @schemasname,@tablename,@colname
    End
    Close cur1 --关闭游标
    Deallocate cur1 --释放游标 
  • 相关阅读:
    SVG前戏—让你的View多姿多彩
    分享几个Android很强势的的开源框架
    终于,我还是下决心学Java后台了
    金9银10,分享几个重要的Android面试题
    django-多表操作2
    python基础-文件操作
    django-单表操作
    django-多表操作
    django-模板层基础2
    djano-模板层基础知识
  • 原文地址:https://www.cnblogs.com/fanlu/p/7560743.html
Copyright © 2011-2022 走看看