回答
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