尝试通过sql Server Management Stu@R_301_410@和Transact sql重命名sql Server Amazon RDS实例上托管的数据库会导致以下错误.
User does not have permission to alter database ‘Morningstar’,the
database does not exist,or the database is not in a state that allows
access checks.@H_404_6@
请注意,这是我尝试过的Transact sql语句.@H_404_6@
ALTER DATABASE <OldName> Modify Name = <NewName>;
到目前为止,我提出的最佳选择是使用新名称恢复原始数据库的副本,然后删除原始数据库.有关如何执行此操作的详细信息,请参阅我的StackOverflow post.@H_404_6@
> bacpac的出口和进口操作可能需要很长时间.
>任何执行写入数据库的应用程序或网站都需要
在整个过程中脱机.
>涉及手动步骤可能导致错误.
>如果要将原始数据库作为回滚策略保留,直到新数据库可用,RDS实例将需要足够大以容纳数据库的两个副本.@H_404_6@
解决方法
RDS最近添加了一个存储过程来完成此任务:
EXEC rdsadmin.dbo.rds_modify_db_name N'<OldName>',N'<NewName>'
资料来源:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.RenamingDB.html@H_404_6@