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

时间:2011-11-02 12:20:57

标签: c# sql sql-server-2008

我想编写一个脚本,允许我连接到sql db,创建db到文本文件,然后删除整个数据库。完成后,我希望能够重新创建整个数据库。这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以将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具有足够权限的用户登录。

答案 1 :(得分:0)

取决于您的目的,但您可以使用数据库项目 见

使用此功能,您可以按需重新创建数据库。