[SQL] 나는 테이블 설명 (필드 이름과 유형)를 얻을 수있는 방법 Sybase 데이터베이스에서?
SQL나는 테이블 설명 (필드 이름과 유형)를 얻을 수있는 방법 Sybase 데이터베이스에서?
나는 명령 줄 ISQL에 액세스 할 수 있으며 나는 아마도 형식의 파일에 주어진 데이터베이스의 모든 테이블의 메타 데이터를 얻을 것을 좋아합니다. 나는 어떻게 달성 할 수 있습니까?
감사.
해결법
-
==============================
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.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.사이베이스 IQ :
사이베이스 IQ :
describe table_name;
-
==============================
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.당신은 사용하여 데이터베이스의 모든 테이블에 열을 검색 할 수 있습니다 :
당신은 사용하여 데이터베이스의 모든 테이블에 열을 검색 할 수 있습니다 :
SELECT so.name FROM sysobjects so INNER JOIN syscolumns sc ON so.id = sc.id WHERE sc.name = 'YOUR_COLUMN_NAME'
-
==============================
6.sp_tables는 ISQL에서 작동합니다. 그것은 당신에게 현재 데이터베이스의 테이블 목록을 제공합니다.
sp_tables는 ISQL에서 작동합니다. 그것은 당신에게 현재 데이터베이스의 테이블 목록을 제공합니다.
-
==============================
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.당신이 명령 줄 프로그램을 사용하기를 원하지만 SQL을 사용하여 제한하지 않는 경우, 당신은 SchemaCrawler를 사용할 수 있습니다. SchemaCrawler는 오픈 소스이며, 일반 텍스트, CSV, 또는 (X) HTML 형식의 파일을 생성 할 수 있습니다.
당신이 명령 줄 프로그램을 사용하기를 원하지만 SQL을 사용하여 제한하지 않는 경우, 당신은 SchemaCrawler를 사용할 수 있습니다. SchemaCrawler는 오픈 소스이며, 일반 텍스트, CSV, 또는 (X) HTML 형식의 파일을 생성 할 수 있습니다.
-
==============================
9.여기에 다른 접근 방식은 메타 데이터를 얻을 수 있습니다. 이것은 매우 도움이 SQL 명령은 당신에게 텍스트로 테이블 / 뷰 정의를 반환
여기에 다른 접근 방식은 메타 데이터를 얻을 수 있습니다. 이것은 매우 도움이 SQL 명령은 당신에게 텍스트로 테이블 / 뷰 정의를 반환
syscomments의 FROM SELECT 텍스트 WHERE ID = OBJECT_ID ( 'MySchema.MyTable') 번호, colid2, ID에 BY ORDER
즐겨 패트릭
-
==============================
10.사이베이스 ASE를 들어, sp_columns는 TABLE_NAME 당신이 찾고있는 모든 테이블 메타 데이터를 반환합니다.
사이베이스 ASE를 들어, sp_columns는 TABLE_NAME 당신이 찾고있는 모든 테이블 메타 데이터를 반환합니다.
-
==============================
11.사이베이스는 SQL-92 호환되는 경우,이 정보는 INFORMATION_SCHEMA 테이블에 저장됩니다.
사이베이스는 SQL-92 호환되는 경우,이 정보는 INFORMATION_SCHEMA 테이블에 저장됩니다.
다음은 SQL-92 호환 데이터베이스에 당신에게 테이블과 뷰의 목록을 줄 것이다 그래서
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
-
==============================
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
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
'SQL' 카테고리의 다른 글
[SQL] 절은 특정 달의 모든 레코드를 찾기 위해 WHERE (0) | 2020.07.21 |
---|---|
[SQL] 이 필드를 $ X를 포함하지 않는 SQL 쿼리 (0) | 2020.07.21 |
[SQL] 어떻게 하나 개의 출력으로 두 개의 테이블에서 열을 병합 할 수 있습니다? (0) | 2020.07.21 |
[SQL] 플랫 파일 데이터베이스 [마감] (0) | 2020.07.21 |
[SQL] SQL 쿼리를 사용하여 int로 문자열을 변환 (0) | 2020.07.21 |