적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric의 SQL 분석 엔드포인트
Microsoft Fabric의 웨어하우스
Microsoft Fabric 미리 보기의 SQL 데이터베이스
이 함수는 지정된 데이터베이스의 데이터베이스 ID 번호를 반환합니다.
구문
DB_ID ( [ 'database_name' ] )
인수
'database_name'
데이터베이스 ID 번호 DB_ID
가 반환하는 데이터베이스의 이름입니다.
DB_ID
에 대한 호출이 database_name을 생략하는 경우 DB_ID
는 현재 데이터베이스의 ID를 반환합니다.
반환 형식
int
설명
DB_ID
는 Azure SQL Database에서 현재 데이터베이스의 데이터베이스 식별자를 반환하는 데만 사용할 수 있습니다. 지정된 데이터베이스 이름이 현재 데이터베이스가 아닌 경우 NULL이 반환됩니다.
참고 항목
Azure SQL Database에서 sys.databases DB_ID
및 sys.database_service_objectivesdatabase_id
과 동일한 값을 반환하지 않을 수 있습니다. 이러한 두 뷰는 논리 서버 내에서 고유한 값을 반환 database_id
하고 다른 DB_ID
시스템 뷰의 database_id
열은 단일 데이터베이스 내에서 또는 탄력적 풀 내에서 고유한 값을 반환합니다.
사용 권한
DB_ID
의 호출자가 특정 비마스터 또는 비tempdb 데이터베이스를 소유하지 않는 경우 최소한 ALTER ANY DATABASE
또는 VIEW ANY DATABASE
서버 수준 사용 권한이 해당 DB_ID
행을 확인하는 데 필요합니다.
마스터 데이터베이스의 경우 DB_ID
는 최소한 CREATE DATABASE
사용 권한이 필요합니다. 호출자가 연결하는 데이터베이스는 항상 sys.databases에 나타납니다.
중요
기본적으로 public 역할에는 모든 로그인이 데이터베이스 정보를 보도록 허용하는 VIEW ANY DATABASE
권한이 있습니다. 로그인이 데이터베이스를 검색하지 않게 하려면 public에서 REVOKE
권한을 VIEW ANY DATABASE
하거나 로그인에 대한 DENY
권한을 VIEW ANY DATABASE
합니다.
예제
A. 현재 데이터베이스의 데이터베이스 ID 반환
이 예에서는 현재 데이터베이스의 데이터베이스 ID를 반환합니다.
SELECT DB_ID() AS [Database ID];
GO
B. 지정한 데이터베이스의 데이터베이스 ID 반환
이 예에서는 AdventureWorks2022
데이터베이스의 데이터베이스 ID를 반환합니다.
SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];
GO
C. DB_ID를 사용하여 시스템 함수 매개 변수 값 지정
이 예에서는 DB_ID
를 사용하여 시스템 함수 AdventureWorks2022
에서 sys.dm_db_index_operational_stats
데이터베이스의 데이터베이스 ID를 반환합니다. 함수는 데이터베이스 ID를 첫 번째 매개 변수로 사용합니다.
DECLARE @db_id INT;
DECLARE @object_id INT;
SET @db_id = DB_ID(N'AdventureWorks2022');
SET @object_id = OBJECT_ID(N'AdventureWorks2022.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를 반환합니다.
이 예제에서는 AdventureWorksDW2022 데이터베이스의 데이터베이스 ID를 반환합니다.
SELECT DB_ID('AdventureWorksPDW2012');
참고 항목
DB_NAME(Transact-SQL)
메타데이터 함수(Transact-SQL)
sys.databases(Transact-SQL)
sys.dm_db_index_operational_stats(Transact-SQL)