美文网首页
查询整个数据库的sql语句

查询整个数据库的sql语句

作者: 夜雨惊风醉看流年过 | 来源:发表于2017-02-03 11:25 被阅读0次

    1.Oracle:

    select table_name

    from  user_tab_columns

    where COLUMN_NAME= 'SAL'---查询数据库内所有包含sal列的表名

    2.SqlServer

    select table_name

    from INFORMATION_SCHEMA.COLUMNS

    where COLUMN_NAME= 'ksmc'

    INTERSECT

    select  b.name

    from    sysindexes a ,

    sysobjects b

    where  a.id = b.id

    and a.indid < 2

    and a.rowcnt > 0

    and objectproperty(b.id, 'IsMSShipped') = 0-------查询数据库内包含某个列名,并且存在数据的表名


    从整个数据库内查询含有某个字符串的表名(工作量极大,慎用)

    declare @cloumns varchar(40)

    declare @tablename varchar(40)

    declare @str varchar(40)

    declare @counts int

    declare @sql nvarchar(2000)

    declare MyCursor Cursor For

    Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c

    where a.id = b.id

    and b.type = 'U'

    and a.xtype=c.xtype

    and c.name like '%char%'

    set @str='林丽英' --此位置为查找的字符

    Open MyCursor

    Fetch next From MyCursor Into @cloumns,@tablename

    While(@@Fetch_Status = 0)

    Begin

    set @sql='select  @tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' like ''%' +@str+ '%'''

    execute sp_executesql  @sql,N'@tmp_counts int out',@counts out

    if @counts>0

    begin

    print '表名为:'+@tablename+',字段名为'+@cloumns

    end

    Fetch next From MyCursor Into @cloumns,@tablename

    End

    Close MyCursor

    Deallocate MyCursor

    相关文章

      网友评论

          本文标题:查询整个数据库的sql语句

          本文链接:https://www.haomeiwen.com/subject/uccpbttx.html