• 经典SQL


     获取数据库中包含指定列的 表

    select   object_name(id)  ,Name as colName
    from syscolumns
    where (name ='列名')
    and id in(select id from sysobjects where xtype='u')
    order by object_name(id)

    sql - 查询所有表中包含指定值

    可以直接创建sql语句:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE TABLE qResults (tName nvarchar(370), cname nvarchar(3630),[countint)
     
    declare @tname nvarchar(200)
    declare @cname nvarchar(200)
     
    declare @countOut nvarchar(200)
    declare @sql nvarchar(max)
    declare c_search cursor for
    select t.name,c.name from sysobjects t inner join syscolumns c on t.id=c.id where t.type='u'  and c.xtype in(56,167,175,231,239) order by t.name --xtype 这个地方限制类型为int varchar char nvarchar nchar 五种类型
    open c_search
    fetch next from c_search into @tname,@cname
    while @@FETCH_STATUS=0
    begin
       
       set @sql=N'select @countx=COUNT(*) from '+@tname +' where [' +@cname +'] =''44'' '
       
       print @sql
       EXECUTE sp_executesql @sql,N'@countx nvarchar(200) out ', @countx=@countOUT OUT
     
       insert into qResults values (@tname,@cname,@countOUT)
     
       
       fetch next from c_search into @tname,@cname
    end
    select tName 'Table',cname 'Field' from qResults where [count]>0 order by tname
    close c_search
    deallocate c_search
     
    drop table qResults

     或者先创建存储过程:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    ALTER proc Full_Search(@string varchar(50))  
    as  
    begin  
      
    declare @tbname varchar(50)  
    declare tbroy cursor for select name from sysobjects  
    where xtype= 'u' --第一个游标遍历所有的表  
      
    open tbroy  
    fetch next from tbroy into @tbname  
    while @@fetch_status=0  
    begin  
      
    declare @colname varchar(50)  
    declare colroy cursor for select name from syscolumns  
    where id=object_id(@tbname) and xtype in (  
    select xtype from systypes  
    where name in 'varchar ''nvarchar ''char ''nchar '--数据类型为字符型的字段  
    --第二个游标是第一个游标的嵌套游标,遍历某个表的所有字段  
      
    open colroy  
    fetch next from colroy into @colname  
    while @@fetch_status=0  
    begin  
      
    declare @sql nvarchar(1000),@j int  
    select @sql= 'select @i=count(1) from ' +@tbname + ' where '+ @colname+ ' like ''''%'+@string+ '%'''  
    exec sp_executesql @sql,N'@i int output',@i=@j output --输出满足条件表的记录数  
    if @j> 0  
    BEGIN 
    select 包含字串的表名=@tbname 
    --exec( 'select distinct '+@colname+' from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%''')  
    END 
    fetch next from colroy into @colname  
    end  
      
    close colroy  
    deallocate colroy  
      
    fetch next from tbroy into @tbname  
    end  
    close tbroy  
    deallocate tbroy  
    end  
       

     然后execute,输入指定值即可.


    --快速查看表结构(比较全面的)
    SELECT CASE WHEN col.colorder = 1 THEN obj.name
    ELSE ''
    END AS 表名,
    col.colorder AS 序号 ,
    col.name AS 列名 ,
    ISNULL(ep.[value], '') AS 列说明 ,
    t.name AS 数据类型 ,
    col.length AS 长度 ,
    ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小数位数 ,
    CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '√'
    ELSE ''
    END AS 标识 ,
    CASE WHEN EXISTS ( SELECT 1
    FROM dbo.sysindexes si
    INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id
    AND si.indid = sik.indid
    INNER JOIN dbo.syscolumns sc ON sc.id = sik.id
    AND sc.colid = sik.colid
    INNER JOIN dbo.sysobjects so ON so.name = si.name
    AND so.xtype = 'PK'
    WHERE sc.id = col.id
    AND sc.colid = col.colid ) THEN '√'
    ELSE ''
    END AS 主键 ,
    CASE WHEN col.isnullable = 1 THEN '√'
    ELSE ''
    END AS 允许空 ,
    ISNULL(comm.text, '') AS 默认值
    FROM dbo.syscolumns col
    LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype
    inner JOIN dbo.sysobjects obj ON col.id = obj.id
    AND obj.xtype = 'U'
    AND obj.status >= 0
    LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id
    LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id
    AND col.colid = ep.minor_id
    AND ep.name = 'MS_Description'
    LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id
    AND epTwo.minor_id = 0
    AND epTwo.name = 'MS_Description'
    WHERE obj.name = 'AutoBillGetAndReturnBack'--表名
    ORDER BY col.colorder ;

  • 相关阅读:
    matlab学习笔记10_7数值计算类型和常用计算公式
    matlab学习笔记10_5 通用字符串操作和比较函数
    matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换
    matlab-数组取值
    matlab学习笔记10_4MATLAB中的字符串表示
    matlab学习笔记10_3关系运算符和逻辑运算符
    matlab学习笔记10_2 一般操作符
    matlab学习笔记10 一般运算符
    matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
    matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14422405.html
Copyright © 2020-2023  润新知