Snowflake SQL for SQL Server Users - UNDROP

Overall the SQL language for Snowflake is somewhat of a subset of what’s available in SQL Server with T-SQL. But there are some commands that really are useful. UNDROP is one of them.
I’ve talked in earlier posts about how Snowflake stores data in immutable micropartitions, and in other posts mentioned the concept of timetravel. Well, an added advantage of having older data still accessible is that you can quickly recover from “incidents”.
Ever have a sinking feeling when you’ve run a script that drops an object and suddenly realized you were connected to the wrong database or server?
If you’ve been in this industry for any length of time, I know you have.
Things go wrong, no matter how careful you are. So it’s good to have an option to help you out.
UNDROP TABLE <tablename>;
can be used to bring back a table that’s previously been dropped. By default, that works for up to 24 hours but it’s also possible to have longer retention periods.
When things really go wrong
But it’s not just tables that can be undropped. For the really adventurous, there are also:
UNDROP SCHEMA <schemaname>;
UNDROP DATABASE <databasename>;
And these commands are fast. We’re talking milliseconds.
There’s a psychological aspect to this as well. Having the ability to recover so easily is also useful for increasing the confidence of the people who are making the changes. (Note: I’m not suggesting that should make people more careless. It’s just important to know there is a better fallback).
2020-01-17