2

我一直在对托管在 Amazon RDS 中的 SQL Server 进行一些研究。我计划拥有一个需要多租户解决方案的应用程序 - 每个客户一个数据库,一个用于登录的核心数据库等。

所以我在玩 RDS/SQL Server,但是我需要克服一些问题。首先如何自动创建数据库?I RDS 我不能只从 bak 文件中恢复,我想从模板创建数据库模式。有没有人有这方面的经验,如果有,你能给我一些建议吗?

谢谢,

克苏多

4

1 回答 1

1

Generate Scripts 是一个很好的起点,但如果您真的想自动创建数据库,您需要将从 SQL Server 的 Generate Script 输出的脚本转换为模板。

这样做的一个好方法是创建一个 .NET 应用程序,或者甚至只是一个存储过程,一旦您将其制成模板,它将在脚本上执行查找和替换。

  1. 使用您想要的所有对象创建您的模板客户数据库,然后编写数据库(所有数据库对象)的脚本。
  2. 在 C# 或 SQL 中,通过在每个对象名称中包含一个变量来构建动态查询:

     CREATE DATABASE CustomerDB_1 ...
    
     "CREATE DATABASE CustomerDB_{0}" //Formatted String in C#
     'CREATE DATABASE CustomerDB_' + @vchCustomerID //Dynamic SQL
    

    如果每个对象名称中都有客户 ID,并且每个数据库都有唯一的客户 ID,那么您可以在将变量替换为适当的值后简单地运行查询,一切就绪。

于 2013-02-23T02:03:24.700 回答