Asp.net 如何从应用程序在SQL Server中自动生成数据库?

Asp.net 如何从应用程序在SQL Server中自动生成数据库?,asp.net,sql-server,database,Asp.net,Sql Server,Database,我目前正在开发一个应用程序,首先要求用户通过一个网站(ASP.NET)创建一个帐户来使用该应用程序。出于特殊原因,我需要在托管的SQL Server上为每个创建帐户的客户自动生成一个数据库。所有客户的数据库都是相同的 我想这样做:因为我有创建数据库的脚本,所以我想将它插入存储过程或触发器中,一旦用户完全创建了他的帐户,就会立即启动该触发器 我真的看不到其他解决方案,也许有人能给我一些指导?提前谢谢。我认为这样的设计已经被证明是不可伸缩的。我建议重新设计模式,以便在单个数据库中允许多个客户 亚马逊

我目前正在开发一个应用程序,首先要求用户通过一个网站(ASP.NET)创建一个帐户来使用该应用程序。出于特殊原因,我需要在托管的SQL Server上为每个创建帐户的客户自动生成一个数据库。所有客户的数据库都是相同的

我想这样做:因为我有创建数据库的脚本,所以我想将它插入存储过程或触发器中,一旦用户完全创建了他的帐户,就会立即启动该触发器


我真的看不到其他解决方案,也许有人能给我一些指导?提前谢谢。

我认为这样的设计已经被证明是不可伸缩的。我建议重新设计模式,以便在单个数据库中允许多个客户


亚马逊没有这样的事情。您也不应该这样。

我同意duffymo对您的评价会有可伸缩性问题

然而,在某些情况下,您可能更喜欢使用单独的数据库作为多租户数据方法

在我的上一个项目中,我不得不采用单独的数据库方法,因为业务部门希望对每个客户进行完全隔离。这是一个学校管理系统,客户数量预计在5-10年内不会增长超过三位数

所以我设计的解决方案是,我使用实体框架代码优先的方法。每个学校都有一个唯一的学校标识符,用于为每个学校唯一地命名数据库。连接字符串显然是在运行时生成的。连接工厂用于根据传递的学校标识符创建适当的DataContext。如果数据库不存在,则在首次使用时创建数据库。同时,如果数据库不存在,则在数据库创建期间执行SQL脚本以创建数据库用户


如果这种方法听起来很吸引人,如果有帮助的话,我可以分享代码片段。

是的,这似乎和我的情况完全一样。如果你能分享这些代码就太好了。它可以引导我一点!谢谢!