您可以创建SYSDBA或有足够的其他管理员级别的用户拥有一个存储过程
DROp TABLE和
CREATE TABLE特权执行以下操作:
- 检查DBC.Tables以查看对象是否存在。
- 如果对象存在,请将其删除。
- 运行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;



