テーブルが存在する場合、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' キーワードの間に何かが必要です。"}
私が試した2番目のコード、以下のコードが機能します!!!
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();