【问题标题】:drop multiple tables in proc sql (via teradata)在 proc sql 中删除多个表(通过 teradata)
【发布时间】:2020-09-22 03:57:09
【问题描述】:

我正在尝试使用以下代码删除多个表,但它会引发错误。

代码:

    PROC SQL ;
        CONNECT TO teradata AS TERADATA (server=dbc  mode=teradata) ;
        EXECUTE (drop table TABLE_NAME1, TABLE_NAME2, TABLE_NAME3  ) BY teradata ;
        DISCONNECT FROM teradata ;
    QUIT ;

错误: 语法错误:期待 NAME1 和 TABLE 之间的内容

【问题讨论】:

  • 一次只能删除一个表。
  • @GordonLinoff 谢谢。这是否仅适用于 sas ?因为我已经看到它在 sql server 中是可能的。
  • 。 .不,这就是 Teradata(和大多数数据库)的工作方式。

标签: sql sas teradata


【解决方案1】:

如果您在 Teradata 中查看 dropdocumentation,您会发现它仅在一张表上运行:

根据指定的关键字,从数据字典中删除指定表的定义,并从其包含的数据库或用户中删除对象。

这是大多数数据库的工作方式。你需要做三滴:

drop table TABLE_NAME1;
drop table TABLE_NAME2;
drop table TABLE_NAME3;

【讨论】:

    【解决方案2】:

    您可以使用一个命令删除数据库中的所有对象:

    DELETE DATABASE name_database;
    

    但视图、触发器、存储过程、用户定义的函数和宏也将被删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-21
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2021-07-28
      • 1970-01-01
      相关资源
      最近更新 更多