-
Notifications
You must be signed in to change notification settings - Fork 51
/
Correct database file logical names.sql
32 lines (30 loc) · 1.17 KB
/
Correct database file logical names.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-- Correct database file logical names
-- Part of the SQL Server DBA Toolbox at https://github.com/DavidSchanzer/Sql-Server-DBA-Toolbox
-- This script lists database logical names that differ from their database name
USE master;
GO
WITH Files
AS (SELECT DB_NAME(database_id) AS DatabaseName,
type_desc AS FileType,
name AS LogicalName,
physical_name AS PhysicalName
FROM sys.master_files
WHERE database_id > 4
AND file_id IN (1,2))
SELECT Files.DatabaseName,
Files.FileType,
Files.LogicalName,
Files.PhysicalName,
CASE
WHEN Files.FileType = 'ROWS' THEN
'USE [' + DatabaseName + ']; ALTER DATABASE [' + DatabaseName + '] MODIFY FILE (NAME=N''' + LogicalName
+ ''', NEWNAME=N''' + DatabaseName + ''')'
ELSE
'USE [' + DatabaseName + ']; ALTER DATABASE [' + DatabaseName + '] MODIFY FILE (NAME=N''' + LogicalName
+ ''', NEWNAME=N''' + DatabaseName + '_log'')'
END AS Command
FROM Files
WHERE Files.DatabaseName <> 'SSISDB'
AND Files.DatabaseName NOT LIKE 'ReportServer%'
AND CHARINDEX(Files.DatabaseName, Files.LogicalName) = 0;
GO