【问题标题】:SQL Server : drop table with SQL parametersSQL Server:使用 SQL 参数删除表
【发布时间】:2015-03-12 19:18:36
【问题描述】:

我正在尝试使用SqlParameters 删除一个表。我有这个代码。

dbCon.Open();
DataRowView d= (DataRowView) cmbTabele.Items[cmbTabele.SelectedIndex];
string name = (d["table_name"]as string);

SqlCommand com=new SqlCommand("drop table @nume ", dbCon);
com.Parameters.Clear();
SqlParameter param = new SqlParameter("@nume", name);
com.Parameters.Add(param);

com.ExecuteNonQuery();   // ERROR HERE
dbCon.Close();

我收到此错误:

“@nume”附近的语法不正确。

但是当我这样做时

SqlCommand com = new SqlCommand("drop table " + name, dbCon);

它有效,我真的不明白这个错误。

【问题讨论】:

    标签: sql sqlparameter drop-table


    【解决方案1】:

    您不能使用参数作为表名。尽管您通常会在这里被告知使用字符串连接构建查询,但这是您需要这样做的一个场合!

    SqlCommand com=new SqlCommand("drop table " + name, dbCon);
    

    【讨论】:

      【解决方案2】:

      我不推荐,但如果你真的想使用SQLParameter,那么这种方式是可能的。

      SqlCommand com=new SqlCommand("EXEC('drop table ''' + @nume + '''')", dbCon);
      

      但实际上,这样做并没有任何优势。这适用于 SQL Server 2005 及其最新版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-14
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 2023-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多