2014-12-04 78 views
0

我試圖理解這種說法轉換的T-SQL語句的Teradata

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

的等價物。

有人可以幫我把這個聲明轉換成TD14。謝謝!

+0

您必須編寫存儲過程才能在Teradata中引入IF THEN邏輯。 – 2014-12-04 20:59:55

回答

1

您可以在TD的至少新版本做到這一點:

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

有COUNT(*)> 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 =

+0

http://stackoverflow.com/questions/9299329/create-table-but-drop-it-if-the-table-exists-already/9300195#9300195;) – 2014-12-04 22:19:30

+1

不,我並不是指在一個程序中。這將在SQL Assistant中運行。 – Andrew 2014-12-04 22:32:37

+0

我知道。您在答案中的.IF命令適用於BTEQ腳本。如果你想在SQL Assistant中運行,你需要一個存儲過程來實現邏輯條件。 – 2014-12-04 22:50:33