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