【问题标题】:Incorrect syntax near @[parameter name] when using parameterised Alter Database command使用参数化的 Alter Database 命令时,@[参数名称] 附近的语法不正确
【发布时间】:2008-11-10 16:46:20
【问题描述】:

我正在尝试使用以下代码删除 SQL Server 数据库:

SqlCommand command = new SqlCommand("USE MASTER; ALTER DATABASE @database SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE @Database", connection);
command.Parameters.AddWithValue("@database", TestingEnvironment.DatabaseName);
command.ExecuteNonQuery();

当我执行它时,我得到了错误:

“@database”附近的语法不正确。 关键字附近的语法不正确 '和'。如果这个说法是常见的 表表达式或 xmlnamespaces 子句,前面的语句必须是 以分号结尾。不正确 'IMMEDIATE' 附近的语法。

我做错了什么?

【问题讨论】:

    标签: .net sql-server ado.net


    【解决方案1】:

    简单地说,Alter Database 命令不支持您想要的参数。你必须在这里连接字符串。

    【讨论】:

    • 姆拉登,这就是我得出的结论。感谢您的确认。
    【解决方案2】:

    参数是否区分大小写?您在第二个 @Database 中有一个大写字母 D。

    【讨论】:

    • 好主意,但实际上这似乎没有什么不同
    • 你能像这样添加一个参数两次,一次添加参数吗?可能想尝试使用 GO 而不是 ';'...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 2021-04-23
    • 2017-08-02
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多