所以我正在开发一个Web应用程序,每个用户都拥有自己的数据库。我想要的是在注册时自动创建用户特定数据库的过程。
我的想法是创建一个带有自定义名称的新空数据库,然后运行预制的sql脚本来生成此数据库的表和默认值。
修改 我想我以前还不清楚。
我按如下方式创建数据库:
using (var conn = new SqlConnection("data source=MySource; uid=MyUser; pwd=MyPassword;"))
{
using (var cmd = new SqlCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "Create Database MYNewDB;";
cmd.ExecuteNonQuery();
}
}
有没有办法(在此之后)执行保存在.sql文件中的脚本来为这个新数据库创建表和值?
答案 0 :(得分:0)
在this answer找到解决方案。
using (var conn = new SqlConnection("data source=MySource; initial catalog=MYNewDB;persist security info=True;user id=MyUser;password=MyPassword;multipleactiveresultsets=True; "))
{
string script = File.ReadAllText(@"C:\Somewhere\...\script.sql");
// split script on GO command
IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$", RegexOptions.Multiline | RegexOptions.IgnoreCase);
conn.Open();
foreach (string commandString in commandStrings)
{
if (commandString.Trim() != "")
{
using (var command = new SqlCommand(commandString, conn))
{
command.ExecuteNonQuery();
}
}
}
conn.Close();
}