查询整个数据库的sql语句

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

    原文作者:夜雨惊风醉看流年过
    原文地址: https://www.jianshu.com/p/789f08b68092
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞