복붙노트

[SQL] 나는 테이블 설명 (필드 이름과 유형)를 얻을 수있는 방법 Sybase 데이터베이스에서?

SQL

나는 테이블 설명 (필드 이름과 유형)를 얻을 수있는 방법 Sybase 데이터베이스에서?

나는 명령 줄 ISQL에 액세스 할 수 있으며 나는 아마도 형식의 파일에 주어진 데이터베이스의 모든 테이블의 메타 데이터를 얻을 것을 좋아합니다. 나는 어떻게 달성 할 수 있습니까?

감사.

해결법

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

    1.을 sysobjects 및 SYSCOLUMNS 테이블을 확인합니다.

    을 sysobjects 및 SYSCOLUMNS 테이블을 확인합니다.

    여기서베이스 시스템 테이블의 도면이다.

    모든 사용자 테이블 목록 :

    SELECT * FROM sysobjects WHERE type = 'U'
    

    당신은 다른 개체에 'U'를 변경할 수 있습니다 :

    테이블의 컬럼 목록 :

    SELECT sc.* 
    FROM syscolumns sc
    INNER JOIN sysobjects so ON sc.id = so.id
    WHERE so.name = 'my_table_name'
    
  2. ==============================

    2.sp_help는 당신을 위해 무엇을 찾고있는 사람입니다.

    sp_help는 당신을 위해 무엇을 찾고있는 사람입니다.

    sp_help는 시스템 프로 시저에베이스 온라인 문서에서 :

    여기 (데이터베이스 개체에 sp_help는 사용에서 붙여 넣기) publishers 테이블의 (부분) 출력은 다음과 같습니다

    Name               Owner        Object_type     Create_date 
    ----------------   -----------  -------------   ------------------------------
    publishers         dbo          user table      Nov 9 2004 9:57AM
    
    (1 row affected)
    Column_name Type     Length   Prec  Scale   Nulls   Default_name   Rule_name
    ----------- -------  ------   ----- ------- ------- -------------- ---------- 
    pub_id      char          4    NULL  NULL        0  NULL           pub_idrule
    pub_name    varchar      40    NULL  NULL        1  NULL           NULL
    city        varchar      20    NULL  NULL        1  NULL           NULL
    state       char          2    NULL  NULL        1  NULL           NULL
    Access_Rule_name    Computed_Column_object     Identity
    ------------------- -------------------------  ------------
    NULL                NULL                                  0
    NULL                NULL                                  0
    NULL                NULL                                  0
    NULL                NULL                                  0
    

    아직 데이터베이스 개체에 sp_help는 사용 인용 :

  3. ==============================

    3.사이베이스 IQ :

    사이베이스 IQ :

    describe table_name;
    
  4. ==============================

    4.

         SELECT
    DB_NAME() TABLE_CATALOG,
    NULL TABLE_SCHEMA,
    so.name TABLE_NAME,
    sc.name COLUMN_NAME,
    sc.colid ORDINAL_POSITION,
    NULL COLUMN_DEFAULT,
    CASE WHEN st.allownulls=1 THEN 'YES'
     ELSE 'NO'
    END IS_NULLABLE,
    st.name DATA_TYPE,
    CASE WHEN st.name like '%char%' THEN st.length
    END CHARACTER_MAXIMUM_LENGTH,
    CASE WHEN st.name like '%char%' THEN st.length
    END*2 CHARACTER_OCTET_LENGTH,
    CASE WHEN st.name in ('numeric','int') THEN st.length
    END NUMERIC_MAXIMUM_LENGTH,
    CASE WHEN st.name in ('numeric','int') THEN st.prec
    END NUMERIC_PRECISION,
    NULL NUMERIC_PRECISION_RADIX,
    CASE WHEN st.name in ('numeric','int') THEN st.scale
    END NUMERIC_SCALE,
    CASE WHEN st.name in ('datetime') THEN st.prec
    END DATETIME_PRECISION,
    NULL CHARACTER_SET_CATALOG,
    NULL CHARACTER_SET_SCHEMA,
    NULL COLLATION_CATALOG,
    NULL COLLATION_SCHEMA,
    NULL DOMAIN_CATALOG,
    NULL DOMAIN_SCHEMA,
    NULL DOMAIN_NAME
    FROM 
    sysobjects so
    INNER JOIN 
    syscolumns sc
    ON sc.id = so.id
    inner join systypes st on st.usertype = sc.usertype 
    WHERE so.name = 'TableName'
    
  5. ==============================

    5.당신은 사용하여 데이터베이스의 모든 테이블에 열을 검색 할 수 있습니다 :

    당신은 사용하여 데이터베이스의 모든 테이블에 열을 검색 할 수 있습니다 :

    SELECT so.name 
    FROM sysobjects so
    INNER JOIN syscolumns sc ON so.id = sc.id 
    WHERE sc.name = 'YOUR_COLUMN_NAME'
    
  6. ==============================

    6.sp_tables는 ISQL에서 작동합니다. 그것은 당신에게 현재 데이터베이스의 테이블 목록을 제공합니다.

    sp_tables는 ISQL에서 작동합니다. 그것은 당신에게 현재 데이터베이스의 테이블 목록을 제공합니다.

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

    7.또한 테이블의 소유자 이름을 원하는 경우 경우에 사용자 테이블을 찾을 때 다음을 사용할 수 있습니다 :

    또한 테이블의 소유자 이름을 원하는 경우 경우에 사용자 테이블을 찾을 때 다음을 사용할 수 있습니다 :

    select su.name + '.' + so.name
    from   sysobjects so,
           sysusers   su
    where  so.type = 'U' and
           so.uid  = su.uid
    order  by su.name,
              so.name
    
  8. ==============================

    8.당신이 명령 줄 프로그램을 사용하기를 원하지만 SQL을 사용하여 제한하지 않는 경우, 당신은 SchemaCrawler를 사용할 수 있습니다. SchemaCrawler는 오픈 소스이며, 일반 텍스트, CSV, 또는 (X) HTML 형식의 파일을 생성 할 수 있습니다.

    당신이 명령 줄 프로그램을 사용하기를 원하지만 SQL을 사용하여 제한하지 않는 경우, 당신은 SchemaCrawler를 사용할 수 있습니다. SchemaCrawler는 오픈 소스이며, 일반 텍스트, CSV, 또는 (X) HTML 형식의 파일을 생성 할 수 있습니다.

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

    9.여기에 다른 접근 방식은 메타 데이터를 얻을 수 있습니다. 이것은 매우 도움이 SQL 명령은 당신에게 텍스트로 테이블 / 뷰 정의를 반환

    여기에 다른 접근 방식은 메타 데이터를 얻을 수 있습니다. 이것은 매우 도움이 SQL 명령은 당신에게 텍스트로 테이블 / 뷰 정의를 반환

    syscomments의 FROM SELECT 텍스트 WHERE ID = OBJECT_ID ( 'MySchema.MyTable') 번호, colid2, ID에 BY ORDER

    즐겨 패트릭

  10. ==============================

    10.사이베이스 ASE를 들어, sp_columns는 TABLE_NAME 당신이 찾고있는 모든 테이블 메타 데이터를 반환합니다.

    사이베이스 ASE를 들어, sp_columns는 TABLE_NAME 당신이 찾고있는 모든 테이블 메타 데이터를 반환합니다.

  11. ==============================

    11.사이베이스는 SQL-92 호환되는 경우,이 정보는 INFORMATION_SCHEMA 테이블에 저장됩니다.

    사이베이스는 SQL-92 호환되는 경우,이 정보는 INFORMATION_SCHEMA 테이블에 저장됩니다.

    다음은 SQL-92 호환 데이터베이스에 당신에게 테이블과 뷰의 목록을 줄 것이다 그래서

    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    
  12. ==============================

    12.사이베이스 버전 I의 사용시, 다음은 선택된 테이블의 컬럼의 목록을 제공

    사이베이스 버전 I의 사용시, 다음은 선택된 테이블의 컬럼의 목록을 제공

    select *
    FROM sys.syscolumns sc
    where tname = 'YOUR_TABLE_NAME'
    --and creator='YOUR_USER_NAME' --if you want to further restrict tables
    --according to the user name that created it
    
  13. from https://stackoverflow.com/questions/1429898/from-a-sybase-database-how-i-can-get-table-description-field-names-and-types by cc-by-sa and MIT license