시스템 함수 사용
시스템 함수를 사용하면 시스템 테이블에 직접 액세스하지 않고도 SQL Server 시스템 테이블의 정보를 액세스할 수 있습니다.
일부 Transact-SQL 시스템 함수의 이름은 @@ 기호로 시작합니다. 이전 버전의 SQL Server에서는 @@ 함수가 전역 변수로 간주되었지만 @@ 함수는 변수가 아니며 변수처럼 동작하지 않습니다. @@ 함수는 시스템 함수이며 구문 사용법이 함수 규칙을 따릅니다.
다음 데이터베이스, 호스트, 개체, 로그인 및 사용자에 대한 각 시스템 함수 쌍은 ID(식별자)를 지정하면 이름을 반환하고 이름을 지정하면 ID를 반환합니다.
DB_ID 및 DB_NAME
HOST_ID 및 HOST_NAME
OBJECT_ID 및 OBJECT_NAME
SUSER_ID 및 SUSER_NAME(또는 SUSER_SID 및 SUSER_SNAME)
USER_ID 및 USER_NAME
예를 들어 데이터베이스 ID를 가져오려면 sysobjects 테이블에서 SELECT를 실행하는 대신 DB_ID 함수를 사용합니다.
다음 예에서는 SQL Server 인증을 사용하여 로그온한 현재 사용자의 사용자 이름을 검색하는 방법을 보여 줍니다.
SELECT SUSER_NAME();
다음 함수들도 위 함수와 비슷하지만 보조 쌍으로 나타나지 않으며 둘 이상의 입력 매개 변수를 사용합니다.
COL_LENGTH
열에 저장된 각 문자열의 길이가 아닌 열의 길이를 반환합니다. DATALENGTH 함수를 사용하여 특정 값의 총 문자 수를 확인할 수 있습니다.
다음 예에서는 Employees 테이블에 있는 LastName 열의 열 길이와 데이터 길이를 반환합니다.
SELECT COL_LENGTH('Employees', 'LastName') AS Col_Length, DATALENGTH(LastName) AS DataLength FROM Employees WHERE EmployeeID > 6;
COL_NAME
열 이름을 반환합니다.
INDEX_COL
인덱스 열 이름을 반환합니다.
시스템 테이블을 직접 쿼리하지 않고 시스템 함수, 정보 스키마 뷰 또는 시스템 저장 프로시저를 사용하여 시스템 정보를 얻는 것이 좋습니다. 시스템 테이블은 SQL Server 버전에 따라 크게 달라질 수 있습니다.