SqlConnection 命令(创建数据库)

SqlConnectionCommand ( CREATE DATABASE)

有谁知道为什么第一个代码有效而第二个代码无效? 在第二次我得到异常(@databaseName 附近的语法错误)。

第一个代码

public void CreateDatabase(string databaseName)
{
     string command = "CREATE DATABASE " + databaseName;
     using (SqlConnection sqlConn = new SqlConnection(_sqlConnectionStringBuilder.ToString()))
     {
          sqlConn.Open();
          using (SqlCommand sqlComm = new SqlCommand(command, sqlConn))
          {
               sqlComm.ExecuteNonQuery()
          }
     }
}

第二个密码

public void CreateDatabase(string databaseName)
{
     string command = "CREATE DATABASE @databaseName";   \I tried both
     string command = "CREATE DATABASE '@databaseName'";  \I tried both
     using (SqlConnection sqlConn = new SqlConnection(_sqlConnectionStringBuilder.ToString()))
     {
          sqlConn.Open();
          using (SqlCommand sqlComm = new SqlCommand(command, sqlConn))
          {
               sqlComm.Parameters.Add(new SqlParameter(@"databaseName", databaseName));
               sqlComm.ExecuteNonQuery()
          }
     }
}

在 TSQL 中,一般规则是您根本不能参数化数据定义语言 (DDL) 语句。并且您不能在数据操作语言 (DML) 语句中使用参数代替标识符。