簡體   English   中英

如何更改數據庫大小

[英]How to change size of database

我知道如何在SQL上更改大小數據庫(在SQL Server 2005 Express Edition中)

ALTER DATABASE Accounting
MODIFY FILE
(NAME = 'Accounting',
SIZE = 25)

如何使用C#更改大小數據庫?

通過ExecuteNonQuery命令提交DDL:

mySqlCommand = mySqlConnection.CreateCommand();

mySqlCommand.CommandText =
  "ALTER DATABASE Accounting MODIFY FILE (NAME = 'Accounting', SIZE = 25) ";

mySqlConnection.Open();
int result = mySqlCommand.ExecuteNonQuery();
mySqlConnection.Close();

可以在此處找到類似的示例(顯示與快照隔離有關的問題,但是思想基本相同):

http://msdn.microsoft.com/en-us/library/tcbchxcb.aspx

以下示例將為您提供更好的概述。 定義了參數后,您可以傳遞一些不必要的東西,這些東西不必是靜態的。 使用using將確保正確處置/關閉所有物品(或在必要時重新使用)。

     public const string sqlDataConnectionDetails = "Data Source=YOUR-SERVER;Initial Catalog=YourDatabaseName;Persist Security Info=True;User ID=YourUserName;Password=YourPassword";

     public static void ChangeDatabaseSize(int databaseSize) {
        const string preparedCommand = @"
                        ALTER DATABASE Accounting
                        MODIFY FILE
                        (NAME = 'Accounting', SIZE = @size)
                        ";
        using (var varConnection = SqlConnectOneTime(sqlDataConnectionDetails))
        using (SqlCommand sqlWrite = new SqlCommand(preparedCommand, varConnection)) {
            sqlWrite.Parameters.AddWithValue("@size", databaseSize);
            sqlWrite.ExecuteNonQuery();
        }
    }

這是一種支持方法,使您每次想向數據庫寫入/讀取內容時都可以輕松建立連接。

    public static SqlConnection SqlConnectOneTime(string varSqlConnectionDetails) {
        SqlConnection sqlConnection = new SqlConnection(varSqlConnectionDetails);
        try {
            sqlConnection.Open();
        } catch {
            DialogResult result = MessageBox.Show(new Form {
                                                               TopMost = true
                                                           }, "No connection to database. Do you want to retry?", "No connection (000001)", MessageBoxButtons.YesNo, MessageBoxIcon.Stop);
            if (result == DialogResult.No) {
                if (Application.MessageLoop) {
                    // Use this since we are a WinForms app
                    Application.Exit();
                } else {
                    // Use this since we are a console app
                    Environment.Exit(1);
                }
            } else {
                sqlConnection = SqlConnectOneTime(varSqlConnectionDetails);
            }
        }
        return sqlConnection;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM