c# - 如何删除整个数据库并使用 sql 和 c# 重新创建它?

标签 c# sql sql-server-2008

我想编写一个脚本,允许我连接到一个 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/

相关文章:

mysql - 扩展以根据数据范围选择

C# sql wcf 参数异常

SQL Server 数据库大小 - 为什么这么大?

sql - 如何一次加载特定行 100

c# - 控制台应用程序宿主wcf服务交互

c# - SqlDbType.Structured 是什么意思?

c# - 在 C# 中,不能抑制进程的每一行

c# - 初始化字符串数组的选项

php - 显示用户详细信息而不保存上一个 session

查找特定表的外键的 SQL 脚本?