답변:
Information Schema views를 쿼리하면이 정보를 훨씬 더 많이 얻을 수 있습니다 .
이 샘플 쿼리 :
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
이 모든 DB 객체를 만들 수 있습니다.
Nortwind.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';
이것은 나를 위해 작동
TABLE_SCHEMA = '?' AND TABLE_NAME = '?'
localhost에 있기 때문에 사용해야 했고 동일한 이름이지만 다른 데이터베이스에 여러 테이블이 있습니다.
주어진 테이블의 모든 열과 관련된 정보를 반환하는 저장 프로 시저 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
.
AND TABLE_SCHEMA = 'schemaName'
있는 경우 WHERE
절을 추가 하십시오 .
JOIN sys.types t on c.system_type_id = t.system_type_id
및 추가 하여 각 열 이름 옆에 유형t.name
을 가져올 수도 있습니다 .
sp_help
SQL Server 2008에서 사용할 수 있습니다 .
sp_help <table_name>;
위 명령의 바로 가기 키 : 테이블 이름을 선택 (즉 강조 표시)하고 ALT+를 누릅니다 F1.
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
SELECT c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
답변 요약
나는 이것을 수행하는 많은 다른 답변과 방법을 볼 수 있지만 이것에는 문지름이 있으며 그것은입니다 objective
.
예, 목표입니다. only know
열 이름 을 원한다면 사용할 수 있습니다
SELECT * FROM my_table WHERE 1=0
or
SELECT TOP 0 * FROM my_table
그러나 use
해당 열을 어딘가에 원하거나 간단히 말하면 manipulate
위의 빠른 쿼리는 사용되지 않습니다. 당신은 사용해야합니다
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'Customers'
비슷한 열이 필요한 특정 열을 아는 또 다른 방법
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
SELECT * FROM my_table WHERE 1=0