[SQL] 데이터베이스에, 각각의 테이블 및 필드의 목록을 얻기
SQL데이터베이스에, 각각의 테이블 및 필드의 목록을 얻기
나는 (순전히 재미를 위해) 기본 ORM을 만드는 찾고 있어요, 그리고 궁금 해서요, 데이터베이스에 테이블의 목록을 반환하는 방법 모든 테이블 또한 필드가?
이 사용하여, 나는 (C #에서) 결과 집합을 통해 루프 할 수 다음 결과 세트의 각 테이블에 대해하고 싶은 말 (할 또는 XYZ를 포함하는 클래스를 만들어 예를 들어, 사용 반사)이 작업을 수행.
또한이에, SQL Server에 대한 좋은 온라인 블로그는 무엇인가? 이 질문은 정말는 SQL Server의 시스템의 SP 및 데이터베이스를 사용하는 방법에 대해 알고, 나는 기능이 종류를 커버 일부 블로그에 관심이 있어요, 그래서 나는, 일반 쿼리로 확인입니다.
감사
해결법
-
==============================
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.테이블 ::
테이블 ::
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.모든 테이블 및 데이터베이스의 필드의 목록을 가져옵니다 :
모든 테이블 및 데이터베이스의 필드의 목록을 가져옵니다 :
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.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
-
==============================
5.나는이 발견 몇 가지 솔루션을 테스트
나는이 발견 몇 가지 솔루션을 테스트
Select * From INFORMATION_SCHEMA.COLUMNS
당신에게 당신의 현재 / 기본 데이터베이스에 대한 열 정보를 제공합니다.
Select * From <DBNAME>.INFORMATION_SCHEMA.COLUMNS
의는 <와>, 당신에게 데이터베이스 DBNAME에 대한 열 정보를 제공하지 않고.
-
==============================
6.다른 붙박이 친구는 여기에 시스템 SPROC의 sp_help는 것입니다.
다른 붙박이 친구는 여기에 시스템 SPROC의 sp_help는 것입니다.
샘플 사용 ::
sp_help <MyTableName>
그것은 당신이 정말 필요한 것보다 훨씬 더 많은 정보를 반환하지만 가능한 요구 사항의 적어도 90 %는 음식을 장만한다.
-
==============================
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.이렇게하면 모든 사용자가 만든 테이블을 얻을 것이다 :
이렇게하면 모든 사용자가 만든 테이블을 얻을 것이다 :
select * from sysobjects where xtype='U'
추위를 얻으려면 :
Select * from Information_Schema.Columns Where Table_Name = 'Insert Table Name Here'
또한, 나는 꽤 좋은 DB를 자원으로 http://www.sqlservercentral.com/을 찾을 수 있습니다.
-
==============================
9.MYSQL의 경우 :
MYSQL의 경우 :
Select * From INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = "<DatabaseName>"
-
==============================
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.나는 SQL 개발자를 사용하여 테이블과 특정 DB의 컬럼의 상세 정보를 가져올 수있는 쉬운 방법을 발견했다.
나는 SQL 개발자를 사용하여 테이블과 특정 DB의 컬럼의 상세 정보를 가져올 수있는 쉬운 방법을 발견했다.
Select *FROM USER_TAB_COLUMNS
-
==============================
12.얻을 모든 INFORMATION_SCHEMA.COLUMNS SELECT * FROM
얻을 모든 INFORMATION_SCHEMA.COLUMNS SELECT * FROM
모든 테이블 이름을 얻기 위해 INFORMATION_SCHEMA.COLUMNS FROM SELECT TABLE_NAME. SQLSERVER에 그것을 시도,
from https://stackoverflow.com/questions/420741/getting-list-of-tables-and-fields-in-each-in-a-database by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 필드가 null는 MySQL의에있는 경우 0을 반환 (0) | 2020.04.01 |
---|---|
[SQL] SELECT / GROUP BY - 시간 세그먼트 (10 초 30 초 등) (0) | 2020.04.01 |
[SQL] SQL Server의 주 번호에서 일주일의 시작 날짜와 주 종료 날짜를 가져옵니다 (0) | 2020.03.31 |
[SQL] 어떻게 NULL 열에 고유 인덱스를 만드는 방법? (0) | 2020.03.31 |
[SQL] 수와 같은 SQL 위해 문자열 (0) | 2020.03.31 |