2013-09-23 2 views
2

MS-SQL에서 테이블의 열 위치를 확인하는 방법.
예 : 표가 column1, column2 및 column3의 3 개의 열로 구성된 경우. 난 당신이 INFORMATION_SCHEMA에서 모든를 얻을 것이다 3테이블의 열 위치

+0

당신이, 컬럼 전에 3 열을 선택합니다 SELECT 문을 사용하여이를 달성 할 수 있습니다. – hims056

+2

SQL에서는 가능한 한 많이 열의 "위치"를 모르는 상태 여야합니다. 열은 위치가 아닌 * 이름 *에 의해 참조됩니다. 해결책의 일부가되는 것처럼 열의 위치를 ​​찾는 것처럼 보이는 문제를 해결하려고 노력하고 있습니까? –

답변

0

시도 :

SELECT ORDINAL_POSITION 
FROM information_schema.columns 
WHERE table_name = 'YourTableName' AND COLUMN_NAME = 'YourColumnName' 
+0

+ 및 schema_name = ...을 편집했습니다. –

1

으로 3 열의 위치를 ​​얻을 수 있도록
나는 쿼리를 작성해야합니다.

select ordinal_position from information_schema.columns 
where schema_name = 'databasename' 
and table_name = 'tablename' 
and column_name = 'column name' 
+2

쿼리에 schema_name을 포함해야합니다. 다른 스키마에 'tablename'이라는 이름의 테이블이 두 개있을 수 있습니다. –

+0

@RomanPekar : 빠른 알림을 보내 주셔서 감사합니다. 대답 –

1

가이 작업을 수행하는 두 가지 방법이있어 : 여기 INFORMATION_SCHEMA 뷰를 피할 이유에 대한 기사입니다

select colid 
from sys.syscolumns 
where id = object_id('schemaname.tablename') and name = 'column3' 

select ordinal_position 
from information_schema.columns 
where 
    schema_name = 'schemaname' and 
    table_name = 'tablename' and 
    column_name = 'column3' 

을 - The case against INFORMATION_SCHEMA views이, 나는이 없습니다 이 유형의 쿼리를 자주 작성하기 때문에 실제로 신경 쓰지는 않지만 sys.syscolumns는 필요하지 않은 중복 조인이 많지 않기 때문에 조금 더 빠른 경향이 있습니다.

는 OTOH, INFORMATION_SCHEMA 뷰는 ISO의 표준 - 이것에 대해 여기의 dicussion - SQL Server: should I use information_schema tables over sys tables?

0

쿼리를 시도하고 결과를 확인합니다.

선택 COLUMN_NAME, INFORMATION_SCHEMA.COLUMNS 에서 ORDINAL_POSITION 곳 TABLE_CATALOG = 'yourdatabasename' 및 TABLE_SCHEMA = 'yourschemaname' 및 TABLE_NAME = 'yourtablename'