使用表元数据作为SQL Server中的select语句?
时间:2020-03-05 18:43:18 来源:igfitidea点击:
我有一个大型数据库,想选择具有特定列名的表名。我已经在MySQL中完成了类似的操作,但是在SQL Server上找不到任何信息。
我想做类似的事情:
select [table] from [db] where table [has column 'classtypeid']
我该怎么做?
解决方案
回答
使用ANSI information_schema视图,这在MySQL中也可以使用
select table_name from information_schema.columns where column_name = 'classtypeid'
回答
干得好:
SELECT C.TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS AS C INNER JOIN INFORMATION_SCHEMA.TABLES AS T ON C.TABLE_NAME = T.TABLE_NAME AND C.TABLE_SCHEMA = T.TABLE_SCHEMA WHERE C.COLUMN_NAME = 'classtypeid' AND T.TABLE_TYPE = 'BASE TABLE'
编辑:请注意,这不会基于具有该列的任何表列出视图。如果仅查询INFORMATION_SCHEMA.COLUMNS,我们还将获得后视图。