Я попытался удалить таблицу в базе данных 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] [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();