SqlConnectionCommand(CREATE DATABASE)

时间:2018-05-04 18:05:22

标签: sql-server sqlconnection

有谁知道为什么第一个代码有效,但第二个代码没有? 在第二个我得到异常(@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()
          }
     }
}

1 个答案:

答案 0 :(得分:1)

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