使用参数化Alter Database命令时@ [参数名称]附近的语法不正确

时间:2008-11-10 16:46:21

标签: .net sql-server ado.net

我正在尝试使用以下代码删除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'附近的语法。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

Params是否区分大小写?你在第二个@Database中有一个大写字母D.