我想编写一个脚本,允许我连接到一个 sql 数据库,将数据库创建到一个文本文件,然后删除整个数据库。一旦完成,我希望能够重新创建整个数据库。这可能吗?
最佳答案
您可以使用 Microsoft.SqlServer.Management.Smo
命名空间来 generate a script ,就像您在 ssms 中一样。可能需要尝试几次才能获得 ScriptingOptions是的,所以不要过分热心并立即开始丢弃东西。
一旦您生成了脚本,这将是一个简单的 ExecuteNonQuery("drop database foo")
来删除您的数据库。
要重新创建,请使用相同的命名空间来执行脚本。使用普通的 ExecuteNonQuery
将不起作用,因为脚本将包含“GO”,这是无效的 sql。不过,SMO 确实包含处理该问题的逻辑。
FileInfo file = new FileInfo("C:\\script.sql");
string script = file.OpenText().ReadToEnd();
SqlConnection connection = new SqlConnection(connectionString);
Server server = new Server(new ServerConnection(connection ));
server.ConnectionContext.ExecuteNonQuery(script);
当然,这是假定使用对 sql server 具有足够权限的用户登录。
关于c# - 如何删除整个数据库并使用 sql 和 c# 重新创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7980200/