如果表存在,我尝试使用 C# 在 Teradata 数据库中删除表。
cmd.CommandText = string.Format("IF EXISTS
(SELECT * FROM sysobjects WHERE type = 'U' AND name = '{0}')
BEGIN DROP TABLE '{0}' END", Customer.TableName);
cmd.ExecuteNonQuery();
但以上总是失败:
{“[Teradata Database] [3706] 语法错误:预期在请求的开头和 'IF' 关键字之间有一些内容。”}
我尝试了第二个代码,下面的代码有效!
cmd.CommandText = "select count (*) from Customer.TableName";
reader = cmd.ExecuteReader();
if (reader.FieldCount > 0)
{
reader.Close();
cmd.CommandText = "Drop table Customer.TableName";
reader = cmd.ExecuteReader();
}
但是,它仅在获得表存在时才有效。如果表 Customer.TableName 不存在,则执行此操作将失败
"select count (*) from Customer.TableName";
reader = cmd.ExecuteReader();