SQL 테이블에 속한 필드 이름을 조회하여 사용해 보자

요약

  • 테이블 필드명을 리스트업 하기 위해서는
  • sys.columns 를 이용하여
  • object_id 에 원하는 테이블의 ID를 넣고 조회하면 됩니다.

문제의 발단

필드(컬럼)가 90개나 되는 테이블에 데이터 하나를 넣으려니 저같은 비전공자, 비전문가에게는 필드 Array 를 만들때, 필드명을 하나씩 치고 있는 다는 것 자체가 곤욕이었습니다. 언제 90개의 필드명을 다 타이핑 하고 있겠습니까. 테이블 관리자도 아닌데 말이죠.

sys.columns 에서 조회하기

그래서 방법을 찾아 보았더니, 역시나 있었습니다. 당연하지만, SQL 이 그렇게 허술하지 않겠죠.

Select * from sys.columns
Where object_id = Object_ID('테이블 이름')

sys.Columns 에서 정보를 조회(Select) 하는데, object_id 가 필드명이 알고 싶은 테이블의 ID 와 일치하는 필드의 정보만 조회 하는 것입니다.

여기서 object_idsys.columns 에 속한 필드이고, 조회된 자료에서 name 필드에 필드명이 있습니다.

Object_ID 함수는 조회를 원하는 테이블 이름을 파리미터로 넣으면 해당 테이블의 ID를 반환해 줍니다.

참고로 테이블 ID를 넣으면 테이블 이름을 뱉어주는 Object_Name 이라는 함수도 있습니다.

참고로 저는 문과충에 이런거 비전문가라서 용어나 설명에 문제가 있을 수도 있음을 알려드려요. 저렇게 해보니까 일단 되긴 되네요.

참고 자료