developer tip

SQL Server의 테이블에서 열 이름을 어떻게 가져올 수 있습니까?

copycodes 2020. 10. 2. 22:50
반응형

SQL Server의 테이블에서 열 이름을 어떻게 가져올 수 있습니까?


테이블의 모든 열 이름을 쿼리하고 싶습니다. 이 작업을 수행하는 방법을 찾았습니다.

하지만 알아야합니다. Microsoft SQL Server (제 경우에는 2008 년)에서 어떻게이 작업을 수행 할 수 있습니까?


정보 스키마보기를 쿼리하여이 정보와 훨씬 더 많은 정보를 얻을 수 있습니다 .

이 샘플 쿼리 :

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

SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

TABLE_NAME 당신의 테이블입니다


SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable 
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position

This SO question is missing the following approach :

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')

You can try this.This gives all the column names with their respective data types.

desc <TABLE NAME> ;

Just run this command

EXEC sp_columns 'Your Table Name'

It will check whether the given the table is Base Table.

SELECT 
    T.TABLE_NAME AS 'TABLE NAME',
    C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
    WHERE   T.TABLE_TYPE='BASE TABLE'
            AND T.TABLE_NAME LIKE 'Your Table Name'

you can use this query

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'

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

One other option which is arguably more intuitive is:

SELECT [name] 
FROM sys.columns 
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]') 

This gives you all your column names in a single column. If you care about other metadata, you can change edit the SELECT STATEMENT TO SELECT *.


SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'

SELECT TOP (0) [toID]
      ,[sourceID]
      ,[name]
      ,[address]
  FROM [ReportDatabase].[Ticket].[To]

Simple and doesnt require any sys tables

참고URL : https://stackoverflow.com/questions/1054984/how-can-i-get-column-names-from-a-table-in-sql-server

반응형