DB_ID(Transact-SQL)

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Database 예Azure SQL Managed Instance 예Azure Synapse Analytics 예병렬 데이터 웨어하우스

이 함수는 지정된 데이터베이스의 데이터베이스 ID 번호를 반환합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

DB_ID ( [ 'database_name' ] )   

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

'database_name'
데이터베이스 ID 번호 DB_ID가 반환하는 데이터베이스의 이름입니다. DB_ID에 대한 호출이 database_name 을 생략하는 경우 DB_ID는 현재 데이터베이스의 ID를 반환합니다.

반환 형식

int

설명

DB_ID는 Azure SQL Database에서 현재 데이터베이스의 데이터베이스 식별자를 반환하는 데만 사용할 수 있습니다. 지정된 데이터베이스 이름이 현재 데이터베이스가 아닌 경우 NULL이 반환됩니다.

참고

Azure SQL Database와 함께 사용하는 경우 DB_IDsys.databases 에서 database_id 쿼리의 경우와 동일한 결과를 반환하지 않을 수 있습니다. DB_ID의 호출자가 결과를 다른 sys 뷰와 비교하는 경우 sys.databases 를 대신 쿼리해야 합니다.

사용 권한

DB_ID의 호출자가 특정 비 마스터 또는 비 tempdb 데이터베이스를 소유하지 않는 경우 최소한 ALTER ANY DATABASE 또는 VIEW ANY DATABASE 서버 수준 사용 권한이 해당 DB_ID 행을 확인하는 데 필요합니다. 마스터 데이터베이스의 경우 DB_ID는 최소한 CREATE DATABASE 사용 권한이 필요합니다. 호출자가 연결하는 데이터베이스는 항상 sys.databases 에 나타납니다.

중요

기본적으로 public 역할에는 모든 로그인이 데이터베이스 정보를 보도록 허용하는 VIEW ANY DATABASE 권한이 있습니다. 로그인이 데이터베이스를 검색하지 않게 하려면 public에서 VIEW ANY DATABASE 권한을 REVOKE하거나 로그인에 대한 DENY 권한을 VIEW ANY DATABASE합니다.

예제

A. 현재 데이터베이스의 데이터베이스 ID 반환

이 예에서는 현재 데이터베이스의 데이터베이스 ID를 반환합니다.

SELECT DB_ID() AS [Database ID];  
GO  

B. 지정한 데이터베이스의 데이터베이스 ID 반환

이 예에서는 AdventureWorks2012 데이터베이스의 데이터베이스 ID를 반환합니다.

SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];  
GO  

C. DB_ID를 사용하여 시스템 함수 매개 변수 값 지정

이 예에서는 DB_ID를 사용하여 시스템 함수 sys.dm_db_index_operational_stats에서 AdventureWorks2012 데이터베이스의 데이터베이스 ID를 반환합니다. 함수는 데이터베이스 ID를 첫 번째 매개 변수로 사용합니다.

DECLARE @db_id INT;  
DECLARE @object_id INT;  
SET @db_id = DB_ID(N'AdventureWorks2012');  
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');  
IF @db_id IS NULL   
  BEGIN;  
    PRINT N'Invalid database';  
  END;  
ELSE IF @object_id IS NULL  
  BEGIN;  
    PRINT N'Invalid object';  
  END;  
ELSE  
  BEGIN;  
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  
  END;  
GO  

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

D. 현재 데이터베이스의 ID 반환

이 예에서는 현재 데이터베이스의 데이터베이스 ID를 반환합니다.

SELECT DB_ID();  

E. 명명된 데이터베이스의 ID를 반환합니다.

이 예에서는 AdventureWorksDW2012 데이터베이스의 데이터베이스 ID를 반환합니다.

SELECT DB_ID('AdventureWorksPDW2012');  

참고 항목

DB_NAME(Transact-SQL)
메타데이터 함수(Transact-SQL)
sys.databases(Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)