有谁知道为什么第一个代码有效,但第二个代码没有? 在第二个我得到异常(@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()
}
}
}
答案 0 :(得分:1)
在TSQL中,一般规则是您根本无法参数化数据定义语言(DDL)语句。并且您不能在数据操作语言(DML)语句中使用参数代替标识符。