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) 语句中使用参数代替标识符。
有谁知道为什么第一个代码有效而第二个代码无效? 在第二次我得到异常(@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) 语句中使用参数代替标识符。