SITUAZIONE

Come tutti sanno, su SQL Server ogni database è formato da uno o più datafiles e da uno o più logfiles: ciascun file è referenziato da SQL Server non tanto con il suo percorso/nome ma con un nome "logico" che poi SQL associa ad un file su disco (è un pò come i Backup Devices: se i job usano i backup devices, non è necessario cambiare i vari job quando si modifica, ad esempio, il percorso dove i backup vengono salvati).

Il problema: potrebbe essere necessario cambiare questi nomi logici perchè, ad esempio, qualche procedura scritta per quel DB si aspetta un ben preciso nome logico.

SOLUZIONE

Basta spulciare un po' i books online di SQL Server e si trova la fantastica sintassi:

USE MASTER
GO
ALTER DATABASE DBNAME
MODIFY FILE
(NAME = OLDNAME_DATA, NEWNAME='NEWNAME_DATA')
GO
 
ALTER DATABASE DBNAME
MODIFY FILE
(NAME = OLDNAME_LOG, NEWNAME='NEWNAME_LOG')
 
 
Dove ovviamente OLDNAME è il vecchio nome e NEWNAME è quello nuovo..
Semplice e pulito (almeno per una volta! teeth smile)