MSSQL에서 전체 데이터 베이스의 파일 정보를 조회하기 위한 내용입니다.
----------------------------------------------------------------------------------------------------
DECLARE @TBL_TEMP TABLE
(
ROWNUM int,
DBNAME VARCHAR(1000),
QRY VARCHAR(1000)
)
DECLARE @TBL_DB TABLE
(
[NAME_DB] [varchar](255),
[NAME_LOGICAL] [sysname],
[file_id] [int],
[physical_name] [nvarchar](4000),
[size] [nvarchar](200)
)
DECLARE @QRY1 VARCHAR(4000);
DECLARE @i int, @maxCnt int;
INSERT INTO @TBL_TEMP
SELECT
ROW_NUMBER() OVER(ORDER BY dtb.name)
,dtb.name AS [Name]
,' SELECT '''+ dtb.name + ''' NAME_DB, name NAME_LOGICAL,[file_id], physical_name, ''size'' = convert(nvarchar(50), convert (bigint, size) * 8 / 1024) + N'' MB''FROM ['+dtb.name+'].sys.database_files WHERE type_desc in (''ROWS'',''LOG'')' QRY
-- 조건절내에 WHERE 문으로 LDF, MDF 구분하여 조회 가능
FROM
master.sys.databases AS dtb
WHERE 1=1
AND state_desc = 'ONLINE'
ORDER BY [Name] ASC
SELECT @i = 1, @maxCnt = MAX(ROWNUM) FROM @TBL_TEMP;
WHILE @i<=@maxCnt
BEGIN
SELECT @QRY1 = QRY FROM @TBL_TEMP WHERE ROWNUM = @i;
INSERT into @TBL_DB EXEC (@QRY1)
SET @i = @i + 1;
END;
SELECT *
fROM @TBL_DB
----------------------------------------------------------------------------------------------------
'Database > MSSQL' 카테고리의 다른 글
SQL Server의 스냅샷 격리 (0) | 2022.03.11 |
---|---|
Database 자동 생성 스크립트 (0) | 2017.05.23 |
Table Valued Parameters(TVP) (0) | 2016.08.01 |
MSSQL 에서 CRUD 기본 스크립트를 생성해 주는 프러시저 (0) | 2016.06.20 |
MSSQL 운영팁 (0) | 2012.09.26 |