雪花:DROP COLUMN(如果存在)

时间:2020-07-06 12:58:49

标签: tsql snowflake-cloud-data-platform

我没有找到任何简单的方法来在Snowflake中“翻译”以下T-SQL查询。

ALTER TABLE table1
DROP COLUMN if exists [col1]

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

在删除列时,目前无法指定if_exists,因此对于一个简单的翻译:

ALTER TABLE table1
drop column "col1";

如果“ col1”不存在(用引号引起来的大小写区分),则将导致SQL编译错误。如果生成错误对您的用例不起作用(例如代码将认为这是一个更严重的问题),则可以在尝试使用存储过程中使用外部逻辑(例如Python)或内部逻辑来检查列的存在放下它。您可以使用此SQL测试列的存在,如果该列退出,则返回1,否则返回0:

select count(*) as COLUMN_EXISTS
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA = 'SCHEMA_TO_CHECK' and
      TABLE_NAME   = 'TABLE_TO_CHECK' and
      COLUMN_NAME  = 'COLUMN_TO_CHECK'
;