使用代码中的模式创建新数据库

时间:2014-01-10 14:10:28

标签: c# sql-server asp.net-mvc database linq

我们正在为我们已有的客户构建一个新的基于云的应用程序,它将为我们所使用的NaCl程序添加/替换功能。每个客户端都有自己的数据库(模式彼此完全相同),我们必须在云提供商上创建一个新的数据库实例。

已经计算出数据的同步过程,并且我已经设法相对轻松地创建数据库。唯一的问题是更新db模式以匹配“db模板”(如果愿意)。根据我的方法,我似乎遇到了一个或另一个问题:

如果我尝试通过ExecuteCommand()向sql server发送脚本(LINQ-to-SQL),我会从声明标量变量,语法错误到需要成为第一个语句的某些函数时遇到一系列错误。查询批次。请注意,此脚本是从SSMS生成的脚本。

我想到的唯一另一种方法是执行本地存储在机器上的脚本(我还没有尝试过),但我读到你不能运行带有可变数据库名称的本地脚本......是必要的。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

SSMS生成的脚本包含go。在SSMS中go结束批处理,但ADO.NET的ExecuteCommand却不是这样。

go上拆分脚本,然后使用ExecuteCommand()分别发送每个部分。

使用SSMS在本地(或远程)运行脚本也应该有效。

我不确定你对“变量数据库名称”的意思。在ADO.NET中,您可以在连接字符串中设置数据库。在SSMS中,您可以使用use <dbname>或查询工具栏中的下拉框。