回答
Create database 'Databasename'
您可以使用SQL Server Management Object API(请参阅Task “creating, altering and removing databases”):关于如何开始
var srv = new Server();
var db = new Database(srv, "mydb");
db.Create();
的信息here。在SQL Server安装期间,您需要安装客户端SDK,SMO程序集位于C:\ Program Files \ Microsoft SQL Server \ 100 \ SDK \ Assemblies
或者如果您不想依赖这些程序集,也可以简单地运行使用ADO.Net(如see this question)DDL语句:
using (var connection = new SqlConnection(myConnectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = "CREATE DATABASE mydb";
command.ExecuteNonQuery();
}
显然,你需要一个正确的连接字符串:被称为SQL Server实例,并用CREATE DATABASE权限的用户。
您需要打开与服务器的连接,即需要服务器和实例名称。
您还需要正确的访问权限才能创建数据库,因此您可能需要某些用户名和密码,具体取决于服务器上的身份验证设置。
从服务器名称和认证信息可以构造一个连接字符串并打开一个连接。
然后您可以使用CREATE DATABASE
SQL命令(请参阅here on MSDN)。该命令唯一需要的参数是数据库名称。
您需要连接信息:服务器,可能是实例,具有在该服务器/实例上创建数据库权限的用户以及相应的密码。然后您可以使用SMO创建数据库。这里是一个小的PowerShell的例子,你可以很轻松地“翻译”成C#,例如:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$s = New-Object Microsoft.SqlServer.Management.Smo.Server($ServerInstance)
# Instantiate the database object and add the filegroups
$db = New-Object Microsoft.SqlServer.Management.Smo.Database($s, $DatabaseName)
$primaryFG = New-Object Microsoft.SqlServer.Management.Smo.FileGroup($db, 'PRIMARY')
$db.FileGroups.Add($primaryFG)
# Create Data file
$syslogname = $DatabaseName + '_SysData'
$dbdsysfile = New-Object Microsoft.SqlServer.Management.Smo.DataFile($primaryFG, $syslogname)
$primaryFG.Files.Add($dbdsysfile)
$dbdsysfile.FileName = $s.MasterDBPath + '\' + $syslogname + '.mdf'
$dbdsysfile.Size = [double](5.0 * 1024.0)
$dbdsysfile.GrowthType = 'KB'
$dbdsysfile.Growth = 10000.0
$dbdsysfile.IsPrimaryFile = 'True'
# Create Log file
$loglogname = $DatabaseName + '_Log'
$dblfile = New-Object Microsoft.SqlServer.Management.Smo.LogFile($db, $loglogname)
$db.LogFiles.Add($dblfile)
$dblfile.FileName = $s.MasterDBLogPath + '\' + $loglogname + '.ldf'
$dblfile.Size = [double](10.0 * 1024.0)
$dblfile.GrowthType = 'KB'
$dblfile.Growth = 10000.0
# Create database with READ_COMMITTED_SNAPSHOT isolation level.
# Other options can be set on $db object before calling Create.
$db.IsReadCommittedSnapshotOn = $true
$db.RecoveryModel = [Microsoft.SqlServer.Management.Smo.RecoveryModel]::Simple
$db.Create()
假设你要火了一个CREATE DATABASE语句,你可以这样做,就像任何其他查询的权利。
我应该强调,能够这样做需要服务器上相当高的权限,并且这仅限于QA和生产环境中的DBA。
因此,我会确保您的连接使用Windows集成安全性。这样,当适当的DBA运行你的应用程序时,应用程序将按要求运行。
一旦你创建了你的数据库,你还需要关闭T-SQL来创建登录和创建用户。我很明显地需要CREATE TABLE/VIEW语句。
从creators:
// 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;
}
即使在执行失败的情况下,再试一次。数据库文件可能已经创建。
- 1. 如何在SQL Server中以编程方式创建数据库?
- 2. 以编程方式创建SQL Server表
- 3. 如何以编程方式在C#中创建SQL Server数据库#
- 4. 以编程方式创建数据库
- 5. 以编程方式在客户机上创建SQL Server Compact数据库
- 6. 无法以编程方式创建数据库文件(SQL Server 2008 R2 Express)
- 7. 如何从C#以编程方式创建SQL Server数据库文件(.mdf)?
- 8. 以编程方式重新创建现有的sql server数据库?
- 9. 以编程方式创建SQL数据库c#
- 10. 如何以编程方式在couchdb中创建数据库?
- 11. 以编程方式在iphone sdk中创建sqlite数据库
- 12. 以编程方式在Spring中创建新的数据库
- 13. 以编程方式向SQL Server数据库添加列
- 14. 以编程方式恢复数据库(SQL Server)
- 15. 如何以编程方式备份Sql Server Express数据库?
- 16. 以编程方式在任意位置创建数据库
- 17. 以编程方式向数据库用户分配SQL Server数据库角色
- 18. 以编程方式在Access/SQL Server中导出视图数据
- 19. 以编程方式创建Oracle数据库和模式ADO.NET
- 20. 在SQL Server中创建数据库
- 21. 在SQL Server中创建数据库
- 22. 在SQL Server 2005中创建数据库
- 23. 以编程方式在桌面上创建MS SQL Compact数据库文件
- 24. 在SQL Server中编程数据库
- 25. 以编程方式创建SQL作业
- 26. 如何以编程方式克隆SQL Server中的数据库模式?
- 27. 以编程方式创建SQL Server CE 4.0数据库并在C#中添加架构?
- 28. 以编程方式在SQL Server CE上使用通用提供程序创建成员资格数据库
- 29. 以编程方式从DataTable创建SQL Server CE表
- 30. 以编程方式创建SQL Server跟踪?
当然这个工作很愚蠢,我只是用一个不存在/虚构的连接字符串来创建数据库:P – Pascal