我一直在使用Amazon RDS托管的SQL Server进行一些研究。我计划建立一个需要多租户解决方案的应用程序 - 每个客户一个数据库,并有一个用于登录的核心数据库等。
所以我正在玩RDS / SQL Server但是我需要克服一些问题。首先,如何自动创建数据库?我RDS我不能只从bak文件恢复,我想从模板创建数据库模式。有没有人有这方面的经验,如果是这样,你能指导我一些提示吗?
谢谢,
kseudo
答案 0 :(得分:1)
Generate Scripts是一个很好的起点,但是如果你真的想要自动化数据库创建,你需要将从SQL Server的Generate Script输出的脚本转换为模板。
执行此操作的一种好方法是创建一个.NET应用程序,甚至只是一个存储过程,一旦您将其作为模板,就会在脚本上执行查找和替换。
在C#或SQL中,通过在每个对象名称中包含一个变量来构建动态查询:
CREATE DATABASE CustomerDB_1 ...
"CREATE DATABASE CustomerDB_{0}" //Formatted String in C#
'CREATE DATABASE CustomerDB_' + @vchCustomerID //Dynamic SQL
如果每个对象名都包含客户ID,并且每个数据库都有唯一的客户ID,那么您可以在用适当的值替换变量后运行查询,并且您已完成设置。