2013-02-06 98 views
1

我無法使用C#查詢更改數據庫文件大小。出於某種原因,我得到一個異常:「附近有語法錯誤@databaseName「無法更改sql server文件數據庫大小

這是執行的查詢代碼:

command = connection.CreateCommand(); 
command.CommandText = @" 
         ALTER DATABASE @databaseName 
         MODIFY FILE 
         (NAME = @databaseFile, SIZE = @newSize) 
         "; 
dbParam = command.CreateParameter(); 
dbParam.ParameterName = "databaseFile"; 
dbParam.Value = dbFileName; 
command.Parameters.Add(dbParam); 
dbParam = command.CreateParameter(); 
dbParam.ParameterName = "newSize"; 
dbParam.Value = newSize; 
command.Parameters.Add(dbParam); 
dbParam = command.CreateParameter(); 
dbParam.ParameterName = "databaseName"; 
dbParam.Value = databaseName; 
command.Parameters.Add(dbParam); 
command.ExecuteNonQuery(); 

現在可能有幾個問題首先在數據庫上不同的機器那樣就不會在數據庫文件的路徑是不同的?

回答

3

有些東西是不能進行參數設置。這包括設置在DML表和列名,但包括大部分 DDL。這不是期待,而無法處理,在這種情況下的參數。

檢查此;只需在SSMS中運行它,提前聲明變量並給它們賦值。你會發現錯誤信息是一樣的。如果它在SSMS中不起作用,那麼ADO.NET不太可能工作。

+0

那麼如何創建查詢?只需從字符串構建它? – Alecu

+0

@Alecu我想問的第一件事是*爲什麼你會希望應用程序代碼這樣做?這似乎很不規範。但基本上,是的。您可以使用方括號來避免一些轉義問題(例如'[Foo.Database]'),但最終您還需要對這些值進行一些理智檢查:不允許任意用戶輸入。另外:這表明你的應用程序代碼是作爲dbo運行的......這是有風險的。 –

+0

我需要此配置。我有必須處理數據庫配置的webservices。 – Alecu