如果database.mdf
中的表格存在,如何删除该表格?该表存在于数据库中,但我无法删除它并收到错误:
System.Data.SqlClient.SqlException:' Talise Company-a'''
附近的语法不正确
问题似乎是我的字符串symbolName
,因为当我创建一个"测试"表和使用"测试"而不是字符串它工作正常
string symbolName = dt.Rows[1][0].ToString();
SqlConnection condb2 = new SqlConnection(strConnection);
condb2.Open();
SqlCommand cmd2 = new SqlCommand("IF EXISTS(SELECT * FROM ['" + symbolName + "']) DROP ['" + symbolName + "']", condb2);
cmd2.ExecuteNonQuery();
condb2.Close();
答案 0 :(得分:3)
您应该使用DROP TABLE
DROP TABLE ['" + symbolName + "']"
你也可以使用
DROP TABLE IF EXISTS
避免无用的选择
https://docs.microsoft.com/it-it/sql/t-sql/statements/drop-table-transact-sql
SqlCommand cmd2 = new SqlCommand("IF EXISTS(SELECT * FROM ['" + symbolName +
"']) DROP TABLE ['" + symbolName + "']", condb2);
或从SQL Server 2016 CTP3开始,您可以使用此功能
SqlCommand cmd2 = new SqlCommand(" DROP TABLE ['" + symbolName + "'] IF EXISTS", condb2);
答案 1 :(得分:1)
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID('TABLE_NAME') AND type IN ('U'))
DROP TABLE TABLE_NAME
答案 2 :(得分:1)
你忘了在丢弃字后提到表格字。
IF EXISTS(SELECT * FROM ['" + symbolName + "']) DROP Table ['" + symbolName + "']", condb2