我如何以编程的方式创建一个数据库,我需要的最小信息是什么?
请无“”建议。
发布于 2012-01-25 23:48:02
Create database 'Databasename'
发布于 2012-01-25 23:50:28
您可以使用Server管理对象API (参见任务"创建、更改和删除数据库"):
var srv = new Server();
var db = new Database(srv, "mydb");
db.Create();
关于如何开始的信息是这里。在安装SQL服务器期间,需要安装客户端SDK,SMO程序集位于C:\Program \Microsoft\100\SDK\ assemblies中。
或者,如果不希望依赖于这些程序集,也可以使用ADO.Net (例如见这个问题)运行DDL语句:
using (var connection = new SqlConnection(myConnectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = "CREATE DATABASE mydb";
command.ExecuteNonQuery();
}
显然,您需要一个正确的连接字符串:已知的sql服务器实例和具有CREATE权限的用户。
发布于 2013-02-21 15:07:19
来自创作者
// your connection string
string connectionString = "Server=(local)\\netsdk;uid=sa;pwd=;database=master";
// your query:
var query = GetDbCreationQuery();
var conn = new SqlConnection(connectionString);
var command = new SqlCommand(query, conn);
try
{
conn.Open();
command.ExecuteNonQuery();
MessageBox.Show("Database is created successfully", "MyProgram",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if ((conn.State == ConnectionState.Open))
{
conn.Close();
}
}
使用默认设置在默认位置创建,只需:
static string GetDbCreationQuery()
{
// your db name
string dbName = "MyDatabase";
// db creation query
string query = "CREATE DATABASE " + dbName + ";";
return query;
}
,或者,在特定位置创建它:
static string GetDbCreationQuery()
{
// your db name
string dbName = "MyDatabase";
// path to your db files:
// ensure that the directory exists and you have read write permission.
string[] files = { Path.Combine(Application.StartupPath, dbName + ".mdf"),
Path.Combine(Application.StartupPath, dbName + ".ldf") };
// db creation query:
// note that the data file and log file have different logical names
string query = "CREATE DATABASE " + dbName +
" ON PRIMARY" +
" (NAME = " + dbName + "_data," +
" FILENAME = '" + files[0] + "'," +
" SIZE = 3MB," +
" MAXSIZE = 10MB," +
" FILEGROWTH = 10%)" +
" LOG ON" +
" (NAME = " + dbName + "_log," +
" FILENAME = '" + files[1] + "'," +
" SIZE = 1MB," +
" MAXSIZE = 5MB," +
" FILEGROWTH = 10%)" +
";";
return query;
}
即使执行失败,也要再试一次。数据库文件可能已经创建。
https://stackoverflow.com/questions/9015142
复制相似问题