如何重命名 SQL Server Amazon RDS 实例上的数据库?

Sco*_*nro 10 sql-server amazon-rds

尝试通过 SQL Server Management Studio 和 Transact SQL 重命名托管在 SQL Server Amazon RDS 实例上的数据库会导致以下错误。

用户无权更改数据库“Morningstar”、数据库不存在或数据库未处于允许访问检查的状态。

请注意,这是我尝试过的 Transact SQL 语句。

ALTER DATABASE <OldName> Modify Name = <NewName>;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我想出的最佳选择是使用新名称恢复原始数据库的副本,然后删除原始数据库。有关如何执行此操作的详细信息,请参阅我的StackOverflow 帖子

这种方法至少有以下缺点。

  1. bacpac 的导出和导入操作可能需要很长时间。
  2. 在整个过程中,任何对数据库执行写入操作的应用程序或网站都需要脱机。
  3. 所涉及的手动步骤可能会导致错误。
  4. RDS 实例需要足够大以承载数据库的两个副本,如果您希望将原始数据库保留在那里作为回滚策略,直到新的实例可用。

任何人都可以提出一种没有这些缺点的替代方法吗?

更新:我对重命名托管在 RDS 实例中的 SQL Server 数据库感兴趣 - 而不是 RDS 实例。

小智 11

RDS 最近添加了一个存储过程来完成此操作:

EXEC rdsadmin.dbo.rds_modify_db_name N'<OldName>', N'<NewName>'
Run Code Online (Sandbox Code Playgroud)

来源:https : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.RenamingDB.html