I had a bug after using my mouse to rename a db so I found an article on how to rename the 'logical' db name.
http://www.mssqltips.com/sqlservertip/1891/best-practice-for-renaming-a-sql-server-database/
I was trying to encapsulate his ideas into an SP (it compiles fine) but am getting an error when I try to execute it
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '@CurrentLogicalFileName'.
if object_id('renameThisDatabase') is not null drop proc renameThisDatabase go Create Procedure renameThisDatabase @CurrentDisplayName nvarchar(2000), @CurrentLogicalFileName nvarchar(2000), @NewLogicalFileName nvarchar(2000) As Declare @CurrentLogicalFileName_Log nvarchar(2000) Set @CurrentLogicalFileName_Log = @CurrentLogicalFileName + '_log' Declare @NewLogicalFileName_Log nvarchar(2000) set @NewLogicalFileName_Log =@NewLogicalFileName + '_log' Declare @sql nvarchar(1000) Set @sql = 'ALTER DATABASE [@CurrentDisplayName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ' Set @sql = @sql + 'ALTER DATABASE [@CurrentDisplayName] MODIFY FILE (NAME=@CurrentLogicalFileName, NEWNAME=@NewLogicalFileName);' Set @sql = @sql + 'ALTER DATABASE [@CurrentDisplayName] MODIFY FILE (NAME=@CurrentLogicalFileName_Log, NEWNAME= @NewLogicalFileName_Log);' Declare @DataTypes nvarchar(2000) = N'@CurrentDisplayName nvarchar(2000), @CurrentLogicalFileName nvarchar(2000), @CurrentLogicalFileName_Log nvarchar(2000), ' set @DataTypes = @DataTypes + '@NewLogicalFileName nvarchar(2000), @NewLogicalFileName_Log nvarchar(2000) ' exec sp_executesql @sql, @DataTypes, @CurrentDisplayName = @CurrentDisplayName, @CurrentLogicalFileName = @CurrentLogicalFileName, @CurrentLogicalFileName_Log = @CurrentLogicalFileName_Log, @NewLogicalFileName = @NewLogicalFileName, @NewLogicalFileName_Log = @NewLogicalFileName_Log