【发布时间】:2012-10-01 15:07:18
【问题描述】:
如果表存在,我尝试使用 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();
【问题讨论】: