복붙노트

[SQL] 데이터베이스에, 각각의 테이블 및 필드의 목록을 얻기

SQL

데이터베이스에, 각각의 테이블 및 필드의 목록을 얻기

나는 (순전히 재미를 위해) 기본 ORM을 만드는 찾고 있어요, 그리고 궁금 해서요, 데이터베이스에 테이블의 목록을 반환하는 방법 모든 테이블 또한 필드가?

이 사용하여, 나는 (C #에서) 결과 집합을 통해 루프 할 수 다음 결과 세트의 각 테이블에 대해하고 싶은 말 (할 또는 XYZ를 포함하는 클래스를 만들어 예를 들어, 사용 반사)이 작업을 수행.

또한이에, SQL Server에 대한 좋은 온라인 블로그는 무엇인가? 이 질문은 정말는 SQL Server의 시스템의 SP 및 데이터베이스를 사용하는 방법에 대해 알고, 나는 기능이 종류를 커버 일부 블로그에 관심이 있어요, 그래서 나는, 일반 쿼리로 확인입니다.

감사

해결법

  1. ==============================

    1.당신이 찾고있는 무슨이다 :

    당신이 찾고있는 무슨이다 :

    OBJECT 카탈로그 뷰를 사용하여

     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/

  2. ==============================

    2.테이블 ::

    테이블 ::

    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'
    
  3. ==============================

    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. ==============================

    4.

    SELECT * FROM INFORMATION_SCHEMA.COLUMNS
    
  5. ==============================

    5.나는이 발견 몇 가지 솔루션을 테스트

    나는이 발견 몇 가지 솔루션을 테스트

    Select *
    From INFORMATION_SCHEMA.COLUMNS
    

    당신에게 당신의 현재 / 기본 데이터베이스에 대한 열 정보를 제공합니다.

    Select *
    From <DBNAME>.INFORMATION_SCHEMA.COLUMNS
    

    의는 <와>, 당신에게 데이터베이스 DBNAME에 대한 열 정보를 제공하지 않고.

  6. ==============================

    6.다른 붙박이 친구는 여기에 시스템 SPROC의 sp_help는 것입니다.

    다른 붙박이 친구는 여기에 시스템 SPROC의 sp_help는 것입니다.

    샘플 사용 ::

    sp_help <MyTableName>
    

    그것은 당신이 정말 필요한 것보다 훨씬 더 많은 정보를 반환하지만 가능한 요구 사항의 적어도 90 %는 음식을 장만한다.

  7. ==============================

    7.그냥이 밖으로 던지는 - 쉽게 이제 복사에 / 단어에 붙여 넣거나 문서를 구글 :

    그냥이 밖으로 던지는 - 쉽게 이제 복사에 / 단어에 붙여 넣거나 문서를 구글 :

    PRINT '<html><body>'
    SET NOCOUNT ON
    DECLARE @tableName VARCHAR(30)
    DECLARE tableCursor CURSOR LOCAL FAST_FORWARD FOR
        SELECT T.name AS TableName 
          FROM sys.objects AS T
         WHERE T.type_desc = 'USER_TABLE'
         ORDER BY T.name
    OPEN tableCursor
    FETCH NEXT FROM tableCursor INTO @tableName
    WHILE @@FETCH_STATUS = 0 BEGIN
        PRINT '<h2>' + @tableName + '</h2>'
        PRINT '<pre>'
        SELECT LEFT(C.name, 30) AS ColumnName,
               LEFT(ISC.DATA_TYPE, 10) AS DataType,
               C.max_length AS Size,
               CAST(P.precision AS VARCHAR(4)) + '/' + CAST(P.scale AS VARCHAR(4)) AS PrecScale,
               CASE WHEN C.is_nullable = 1 THEN 'Null' ELSE 'No Null' END AS [Nullable],
               LEFT(ISNULL(ISC.COLUMN_DEFAULT, ' '), 5)  AS [Default],
               CASE WHEN C.is_identity = 1 THEN 'Identity' ELSE '' END AS [Identity]
        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
               JOIN INFORMATION_SCHEMA.COLUMNS AS ISC ON T.name = ISC.TABLE_NAME AND C.name = ISC.COLUMN_NAME
        WHERE  T.type_desc = 'USER_TABLE'
          AND  T.name = @tableName
        ORDER BY T.name, ISC.ORDINAL_POSITION
        PRINT '</pre>'
        FETCH NEXT FROM tableCursor INTO @tableName
    
    END
    
    CLOSE tableCursor
    DEALLOCATE tableCursor
    SET NOCOUNT OFF
    PRINT '</body></html>'
    
  8. ==============================

    8.이렇게하면 모든 사용자가 만든 테이블을 얻을 것이다 :

    이렇게하면 모든 사용자가 만든 테이블을 얻을 것이다 :

    select * from sysobjects where xtype='U'
    

    추위를 얻으려면 :

    Select * from Information_Schema.Columns Where Table_Name = 'Insert Table Name Here'
    

    또한, 나는 꽤 좋은 DB를 자원으로 http://www.sqlservercentral.com/을 찾을 수 있습니다.

  9. ==============================

    9.MYSQL의 경우 :

    MYSQL의 경우 :

    Select *
    From INFORMATION_SCHEMA.COLUMNS
    where TABLE_SCHEMA = "<DatabaseName>"
    
  10. ==============================

    10.이 데이터베이스 이름, 테이블 이름, 열 이름 및 데이터베이스 매개 변수에 의해 지정된 열의 데이터 유형을 반환합니다 :

    이 데이터베이스 이름, 테이블 이름, 열 이름 및 데이터베이스 매개 변수에 의해 지정된 열의 데이터 유형을 반환합니다 :

    declare @database nvarchar(25)
    set @database = ''
    
    SELECT cu.table_catalog,cu.VIEW_SCHEMA, cu.VIEW_NAME, cu.TABLE_NAME,   
    cu.COLUMN_NAME,c.DATA_TYPE,c.character_maximum_length
    from INFORMATION_SCHEMA.VIEW_COLUMN_USAGE as cu
    JOIN INFORMATION_SCHEMA.COLUMNS as c
    on cu.TABLE_SCHEMA = c.TABLE_SCHEMA and c.TABLE_CATALOG = 
    cu.TABLE_CATALOG
    and c.TABLE_NAME = cu.TABLE_NAME
    and c.COLUMN_NAME = cu.COLUMN_NAME
    where cu.TABLE_CATALOG = @database
    order by cu.view_name,c.COLUMN_NAME
    
  11. ==============================

    11.나는 SQL 개발자를 사용하여 테이블과 특정 DB의 컬럼의 상세 정보를 가져올 수있는 쉬운 방법을 발견했다.

    나는 SQL 개발자를 사용하여 테이블과 특정 DB의 컬럼의 상세 정보를 가져올 수있는 쉬운 방법을 발견했다.

    Select *FROM USER_TAB_COLUMNS
    
  12. ==============================

    12.얻을 모든 INFORMATION_SCHEMA.COLUMNS SELECT * FROM

    얻을 모든 INFORMATION_SCHEMA.COLUMNS SELECT * FROM

    모든 테이블 이름을 얻기 위해 INFORMATION_SCHEMA.COLUMNS FROM SELECT TABLE_NAME. SQLSERVER에 그것을 시도,

  13. from https://stackoverflow.com/questions/420741/getting-list-of-tables-and-fields-in-each-in-a-database by cc-by-sa and MIT license