【问题标题】:convert t-sql statement to teradata将 t-sql 语句转换为 teradata
【发布时间】:2014-12-04 19:40:14
【问题描述】:

我试图理解这个语句的等价物

IF OBJECT_ID('Current') IS NOT NULL 
   DROP TABLE Current; 

在 Teradata 中。

谁能帮我将此语句转换为 TD14。谢谢!

【问题讨论】:

  • 您必须编写一个存储过程来在 Teradata 中引入 IF THEN 逻辑。

标签: teradata


【解决方案1】:

您至少可以在较新版本的 TD 中执行此操作:

select
count (*)
from
dbc.tablesv where tablename = '<your table>'
and databasename = '<your db>'

计数 (*) > 0;

.if activitycount = 1  then .GOTO DropTable;
.if activitycount <> 1  then .quit;

.LABEL DropTable
select 'DROP TABLE!';
drop table <your db>.<your table>;

很遗憾,这不适用于易失性表。如果它们是全局临时表,则可以使用 select count (*) from dbc.AllTempTablesVX where B_tablename =

【讨论】:

  • 不,我不是说在程序中。这将在 SQL 助手中运行。
  • 我知道。您回答中的 .IF 命令用于 BTEQ 脚本。如果你想在 SQL 助手中运行,你需要一个存储过程来实现逻辑条件。
  • 不,确切的代码(嗯,具有真实的表和数据库名称)将在 SQL 助手中运行。不需要 BTEQ 或存储过程。
  • 顺便说一句,一个 COUNT 将始终返回一行 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
相关资源
最近更新 更多