2014-12-04 2 views
0

Я пытаюсь понять эквивалент этого утвержденияновообращенный оператор T-SQL для Teradata

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

в Teradata.

Может кто-то помочь мне преобразовать это утверждение в TD14. Спасибо!

+0

Вам нужно будет написать хранимую процедуру, чтобы ввести логику IF THEN в Teradata. –

ответ

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;) –

+1

Нет, я не имею в виду процедуру. Это будет работать в SQL Assistant. – Andrew

+0

Я знаю. Команда .IF в вашем ответе - для сценария BTEQ. Если вы хотите запустить SQL Assistant, вам понадобится хранимая процедура для реализации логического состояния. –

Смежные вопросы