Как переименовать базу данных MSSQL с именем «База данных»?

У меня есть база данных MSSQL с именем «База данных». Теперь, когда я пытаюсь переименовать его, используя запрос, показанный ниже,

USE master; GO ALTER DATABASE Database Modify Name = Database01 GO 

Это дает мне сообщение об ошибке:

Msg 102, Level 15, State 1, Line 1 Неверный синтаксис рядом с «Database».

Но этот запрос отлично подходит для другой базы данных. Что я делаю неправильно?

Если вы «укажете» имя таблицы, она должна работать. Символами кавычки по умолчанию являются квадратные скобки [], поэтому:

 USE master; GO ALTER DATABASE [Database] Modify Name = Database01 GO 

Вместо использования длинного кода вы можете просто использовать встроенную sp_renamedb'oldDBName','NewDBName' процедуру sp_renamedb'oldDBName','NewDBName'sp_renamedb'oldDBName','NewDBName'

когда вам нужно использовать зарезервированные ключевые слова для имени таблицы, имени базы данных, имени столбца всегда положить [] (большие скобки)

такие как

select * from [Table] вместо select * from table

select [column] from [table] вместо select column from table

но его очень плохая идея поставить зарезервированное ключевое слово как имя для ваших объектов.

Давайте будем гением компьютера.