SQL Server 2008을 사용하여 테이블의 열 이름을 어떻게 반환합니까? 즉, 테이블에는 이러한 열-id, 이름, 주소, 국가가 포함되어 있으며 데이터로 반환하고 싶습니다.
답변
2008 버전에 더 쉬운 방법이 있는지 확실하지 않습니다.
USE [Database Name]
SELECT COLUMN_NAME,*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'
답변
가장 쉬운 방법입니다
exec sp_columns [tablename]
답변
이 같은?
sp_columns @table_name=your table name
답변
한 가지 방법은 syscolumns를 쿼리하는 것입니다.
select
syscolumns.name as [Column],
syscolumns.xusertype as [Type],
sysobjects.xtype as [Objtype]
from
sysobjects
inner join
syscolumns on sysobjects.id = syscolumns.id
where sysobjects.xtype = 'u'
and sysobjects.name = 'MyTableName'
order by syscolumns.name
답변
OBJECT_ID () 함수를 사용하여 테이블의 ID를 찾기 때문에 위의 제안보다 약간 더 쉽습니다 . 해당 ID를 가진 모든 열은 테이블의 일부입니다.
SELECT *
FROM syscolumns
WHERE id=OBJECT_ID('YOUR_TABLE')
필자는 비슷한 쿼리를 사용하여 내가 알고있는 열이 최신 버전의 일부인지 확인합니다. where 절에 {AND name = ‘YOUR_COLUMN’}을 추가 한 것과 동일한 쿼리입니다.
IF EXISTS (
SELECT *
FROM syscolumns
WHERE id=OBJECT_ID('YOUR_TABLE')
AND name='YOUR_COLUMN'
)
BEGIN
PRINT 'Column found'
END
답변
이 시도
select * from <tablename> where 1=2
………………………………………..
답변
다음은 위의 첫 번째 제안 쿼리와 같지만 때로는 작동하도록 데이터베이스를 지정해야합니다. 쿼리는 TABLE_SCHEMA를 지정하지 않고 작동해야합니다.
SELECT COLUMN_NAME
FROM YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'