如果表存在,我尝试使用C#删除Teradata数据库中的表。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] Syntax error: expected something between the beginning of the request and the 'IF' keyword."}
二码我想,下面的代码工作!
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();
对不起工作,没有工作。如果我只运行SELECT 1 FROM dbc.tables WHERE databasename ='John'AND tablename ='ctry',那么它会返回一些数据。但它失败了,当我申请IF EXISTS()然后下降表'ctry' – VeecoTech
什么是错误? –
{“[Teradata Database] [3706]语法错误:预计在请求开头和'IF'关键字之间有一些东西。”} – VeecoTech