创建表,但是如果表已经存在则将其删除

创建表,但是如果表已经存在则将其删除,第1张

创建表,但是如果表已经存在则将其删除

您可以创建SYSDBA或有足够的其他管理员级别的用户拥有一个存储过程

DROp TABLE
CREATE TABLE
特权执行以下 *** 作:

  1. 检查DBC.Tables以查看对象是否存在。
  2. 如果对象存在,请将其删除。
  3. 运行DDL以重新创建表:
    CREATE TABLE <TargetDB>.<TargetTable> AS <SourceDB>.<SourceTable> WITH DATA AND STATS;

您可以通过接受有关是否应将数据和/或统计信息复制到新表的附加参数来使其更加动态。

如果您使用的是BTEQ,则可以执行类似的 *** 作(BTEQ命令语法可能略有偏离,但足够接近以便理解要点):

SELECT 1 FROM DBC.TABLES WHERe DatabaseName = '<TargetDB>'  AND TableName = '<TargetTable>'  AND TableKind = 'T' .IF ACIVITYCOUNT = 0 THEN GOTO CreateNewTable;DROP TABLE <TargetDB>.<TargetTable>;.IF ERRORCODE = 3807 THEN GOTO CreateNewTable; .IF ERRORCODE > 0 THEN .QUIT ERRORCODE; .LABEL CreateNewTable;CREATE <TargetDB>.<TargetTable> AS <SourceDB>.<SourceTable> WITH DATA AND STATISTICS;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5144728.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存