1

C#クエリでデータベースファイルサイズを変更できません。何らかの理由で例外が発生します:「'@databaseName'の近くの構文が正しくありません。

これは、クエリを実行したコードです。

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();

今、いくつかの問題があるかもしれません。まず、データベースは別のマシン上にあるので、dbファイルのパスは異なりませんか?

4

1 に答える 1

3

パラメータ化できないものもあります。これには、DMLのテーブル名や列名などが含まれますが、ほとんどのDDLが含まれます。このシナリオでは、パラメーターを予期しておらず、処理できません。

これを確認するには; SSMSで実行し、事前に変数を宣言して値を指定するだけです。エラーメッセージは同じです。SSMSで機能しない場合は、ADO.NETから機能する可能性はほとんどありません。

于 2013-02-06T12:39:16.680 に答える