2010-03-20 86 views
1

的大小,我知道如何在SQL改变大小的数据库(在SQL Server 2005 Express版本)如何更改数据库

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

如何改变大小的数据库期运用C#?

回答

3

通过ExecuteNonQuery命令提交DDL:

mySqlCommand = mySqlConnection.CreateCommand(); 

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

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

类似的例子可以在这里找到(显示为快照隔离相关的问题,但ideais基本相同):

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

0

下面的例子会给你一个更好的概述。定义参数后,您可以传递一些不必要的东西,这些东西必须是静态的。使用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; 
    }