当前位置:  开发笔记 > 编程语言 > 正文

获取数据库中的表和每个字段的列表

如何解决《获取数据库中的表和每个字段的列表》经验,为你挑选了5个好方法。

我正在寻找创建一个基本的ORM(纯粹是为了好玩),并且想知道,有没有办法返回数据库中的表列表以及每个表的字段?

使用这个,我希望能够循环遍历结果集(在C#中),然后对结果集中的每个表说,执行此操作(例如,使用反射来创建将执行或包含xyz的类).

除此之外,SQL Server的一些优秀在线博客是什么?我知道这个问题实际上是关于在Sql Server中使用系统SP和数据库,我对一般查询没问题,所以我对一些涵盖这种功能的博客感兴趣.

谢谢



1> MarlonRibuna..:

这是你想要的:

使用OBJECT CATALOG VIEWS

 SELECT T.name AS Table_Name ,
       C.name AS Column_Name ,
       P.name AS Data_Type ,
       P.max_length AS Size ,
       CAST(P.precision AS VARCHAR) + '/' + CAST(P.scale AS VARCHAR) AS Precision_Scale
FROM   sys.objects AS T
       JOIN sys.columns AS C ON T.object_id = C.object_id
       JOIN sys.types AS P ON C.system_type_id = P.system_type_id
WHERE  T.type_desc = 'USER_TABLE';

使用信息模式视图

  SELECT TABLE_SCHEMA ,
       TABLE_NAME ,
       COLUMN_NAME ,
       ORDINAL_POSITION ,
       COLUMN_DEFAULT ,
       DATA_TYPE ,
       CHARACTER_MAXIMUM_LENGTH ,
       NUMERIC_PRECISION ,
       NUMERIC_PRECISION_RADIX ,
       NUMERIC_SCALE ,
       DATETIME_PRECISION
FROM   INFORMATION_SCHEMA.COLUMNS;

参考:我的博客 - http://dbalink.wordpress.com/2008/10/24/querying-the-object-catalog-and-information-schema-views/


第一个查询总是返回char的maxlength = 8000,这是不正确的.第二个查询是正确的,更详细

2> ZombieSheep..:

表格::

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

列 ::

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 

要么

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='your_table_name'


关于INFORMATION_SCHEMA的一个很酷的事情是它是一个ISO的东西,而不仅仅是一个sql服务器的东西.相同的代码适用于所有兼容的数据库

3> 小智..:

获取所有表的列表以及数据库中的字段:

Select *
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_CATALOG Like 'DatabaseName'

获取表格中所有字段的列表:

Select *
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_CATALOG Like 'DatabaseName' And TABLE_NAME Like 'TableName' 



4> JeremyDWill..:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS



5> 小智..:

我测试了一些解决方案

Select *
From INFORMATION_SCHEMA.COLUMNS

为您提供CURRENT /默认数据库的列信息.

Select *
From .INFORMATION_SCHEMA.COLUMNS

,没有<和>,为您提供数据库DBNAME的列信息.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有