Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在托管在Amazon RDS中的SQL Server中自动创建数据库_C#_Sql Server_Amazon Rds - Fatal编程技术网

C# 在托管在Amazon RDS中的SQL Server中自动创建数据库

C# 在托管在Amazon RDS中的SQL Server中自动创建数据库,c#,sql-server,amazon-rds,C#,Sql Server,Amazon Rds,我一直在研究AmazonRDS中托管的SQL Server。我计划有一个应用程序,需要多租户解决方案-每个客户一个数据库与一个核心数据库登录等 所以我在玩RDS/SQL Server,但我需要克服一些问题。首先,如何自动创建数据库?我不能仅仅从bak文件恢复,我想从模板创建数据库模式。有没有人有这方面的经验?如果有,你能给我一些建议吗 谢谢 kseudo生成脚本是一个很好的起点,但是如果您真的想自动化数据库创建,您需要将SQL Server的生成脚本输出的脚本转换为模板 这样做的一个好方法是创建

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

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

谢谢


kseudo

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

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

  • 使用所需的所有对象创建模板客户数据库 然后将数据库(所有数据库对象)脚本化
  • 在C#或SQL中,通过在每个对象名称中包含一个变量来构建动态查询:

     CREATE DATABASE CustomerDB_1 ...
    
     "CREATE DATABASE CustomerDB_{0}" //Formatted String in C#
     'CREATE DATABASE CustomerDB_' + @vchCustomerID //Dynamic SQL
    
    如果每个对象名称中都有客户ID,并且每个数据库都有一个唯一的客户ID,那么您只需在用适当的值替换变量后运行查询,就可以完成所有设置


  • 你考虑过使用SMO吗?(或者)或者简单地使用Management Studio和“生成脚本…”任务?哦,如果你不使用无限的DB计划,那么要考虑亚马逊RDS。您可以始终拥有一个主数据库,每个客户都有不同的表——每个客户都可以有自己的模式,您不必担心数据库限制的最大数量。不确定这是否适用于你,但只是一个想法。谢谢Chris,你最初的帖子给了我一些关于如何解决我的问题的想法。如果我取得了一些进展,我将再次发布。。。再次感谢@kSeudo,我正在研究类似的设置。我们需要为所有客户提供单独的数据库,但创建过程耗时太长,我们希望实现自动化。你是否按照克里斯的建议解决了你的问题?提前谢谢。