[sql] SQL Server의 테이블에서 열 이름을 얻는 방법은 무엇입니까?

테이블의 모든 열 이름을 쿼리하고 싶습니다. 나는 이것을하는 방법을 찾았다 :

그러나 나는 알아야합니다 : 어떻게 Microsoft SQL Server (2008의 경우)에서 이것을 할 수 있습니까?



답변

Information Schema views를 쿼리하면이 정보를 훨씬 더 많이 얻을 수 있습니다 .

이 샘플 쿼리 :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

이 모든 DB 객체를 만들 수 있습니다.


답변

주어진 테이블의 모든 열과 관련된 정보를 반환하는 저장 프로 시저 sp_columns를 사용할 수 있습니다. 자세한 정보는 http://msdn.microsoft.com/en-us/library/ms176077.aspx 에서 확인할 수 있습니다 .

SQL 쿼리로 수행 할 수도 있습니다. 이와 같은 것이 도움이 될 것입니다.

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

또는 변형은 다음과 같습니다.

SELECT   o.Name, c.Name
FROM     sys.columns c
         JOIN sys.objects o ON o.object_id = c.object_id
WHERE    o.type = 'U'
ORDER BY o.Name, c.Name

모든 테이블에서 모든 열을 테이블 이름 순서로 정렬 한 다음 열 이름으로 가져옵니다.


답변

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

이것은 직접 sys.columns보여주기 때문에 얻는 것보다 낫습니다 DATA_TYPE.


답변

sp_helpSQL Server 2008에서 사용할 수 있습니다 .

sp_help <table_name>;

위 명령의 바로 가기 키 : 테이블 이름을 선택 (즉 강조 표시)하고 ALT+를 누릅니다 F1.


답변

이 쿼리를 사용하면 답을 얻을 수 있습니다.

select Column_name
from Information_schema.columns
where Table_name like 'table name'


답변

MySql에서 INFORMATION_SCHEMA를 사용하지 않고 열 이름과 모든 세부 사항을 얻기 위해이 쿼리를 작성할 수 있습니다.

SHOW COLUMNS FROM database_Name.table_name;


답변

--This is another variation used to document a large database for conversion (Edited to --remove static columns)

SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype
WHERE o.type = 'U'
ORDER BY o.Name, c.Name

--In the left join, c.type is replaced by c.xtype to get varchar types