Palavras-chave reservadas e limitadas¶
O Snowflake SQL reserva todas as palavras-chave ANSI (com exceção das palavras-chave do tipo CHAR, DATE, DECIMAL etc.), bem como algumas palavras-chave adicionais (ASC, DESC, MINUS etc.) que são reservadas por outros bancos de dados populares. Além disso, o Snowflake reserva palavras-chave REGEXP e RLIKE (que funcionam como a palavra-chave ANSI reservada LIKE) e SOME (que é sinônimo da palavra-chave ANSI reservada ANY).
Para evitar ambiguidades de análise, o Snowflake SQL também proíbe o uso de palavras-chave como LEFT, OUTER, JOIN etc. como nomes de tabela ou aliases na lista FROM, e o uso de palavras-chave como TRUE, FALSE, CASE etc. como referências de colunas em expressões escalares.
A tabela a seguir fornece a lista de palavras-chave reservadas no Snowflake e palavras-chave que não são estritamente reservadas, mas têm limitações de uso:
| Palavra-chave | Comentário | 
|---|---|
| A | |
| ACCOUNT | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| ALL | Reservada por ANSI. | 
| ALTER | Reservada por ANSI. | 
| AND | Reservada por ANSI. | 
| ANY | Reservada por ANSI. | 
| AS | Reservada por ANSI. | 
| B | |
| BETWEEN | Reservada por ANSI. | 
| BY | Reservada por ANSI. | 
| C | |
| CASE | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| CAST | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| CHECK | Reservada por ANSI. | 
| COLUMN | Reservada por ANSI. | 
| CONNECT | Reservada por ANSI. | 
| CONNECTION | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| CONSTRAINT | Não pode ser usada como um nome de coluna em CREATE TABLE DDL. | 
| CREATE | Reservada por ANSI. | 
| CROSS | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| CURRENT | Reservada por ANSI. | 
| CURRENT_DATE | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| CURRENT_TIME | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| CURRENT_TIMESTAMP | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| CURRENT_USER | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| D | |
| DATABASE | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| DELETE | Reservada por ANSI. | 
| DISTINCT | Reservada por ANSI. | 
| DROP | Reservada por ANSI. | 
| E | |
| ELSE | Reservada por ANSI. | 
| EXISTS | Reservada por ANSI. | 
| F | |
| FALSE | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| FOLLOWING | Reservada por ANSI. | 
| FOR | Reservada por ANSI. | 
| FROM | Reservada por ANSI. | 
| FULL | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| G | |
| GRANT | Reservada por ANSI. | 
| GROUP | Reservada por ANSI. | 
| GSCLUSTER | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| H | |
| HAVING | Reservada por ANSI. | 
| I | |
| ILIKE | Reservada pelo Snowflake. | 
| IN | Reservada por ANSI. | 
| INCREMENT | Reservada pelo Snowflake e outros. | 
| INNER | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| INSERT | Reservada por ANSI. | 
| INTERSECT | Reservada por ANSI. | 
| INTO | Reservada por ANSI. | 
| IS | Reservada por ANSI. | 
| ISSUE | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| J | |
| JOIN | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| L | |
| LATERAL | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| LEFT | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| LIKE | Reservada por ANSI. | 
| LOCALTIME | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| LOCALTIMESTAMP | Não pode ser usada como nome de coluna (reservada por ANSI). | 
| M | |
| MINUS | Reservada pelo Snowflake e outros. | 
| N | |
| NATURAL | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| NOT | Reservada por ANSI. | 
| NULL | Reservada por ANSI. | 
| O | |
| OF | Reservada por ANSI. | 
| ON | Reservada por ANSI. | 
| OR | Reservada por ANSI. | 
| ORDER | Reservada por ANSI. | 
| ORGANIZATION | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| Q | |
| QUALIFY | Reservada pelo Snowflake. | 
| R | |
| REGEXP | Reservada pelo Snowflake. | 
| REVOKE | Reservada por ANSI. | 
| RIGHT | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| RLIKE | Reservada pelo Snowflake. | 
| ROW | Reservada por ANSI. | 
| ROWS | Reservada por ANSI. | 
| S | |
| SAMPLE | Reservada por ANSI. | 
| SCHEMA | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| SELECT | Reservada por ANSI. | 
| SET | Reservada por ANSI. | 
| SOME | Reservada pelo Snowflake. | 
| START | Reservada por ANSI. | 
| T | |
| TABLE | Reservada por ANSI. | 
| TABLESAMPLE | Reservada por ANSI. | 
| THEN | Reservada por ANSI. | 
| TO | Reservada por ANSI. | 
| TRIGGER | Reservada por ANSI. | 
| TRUE | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| TRY_CAST | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| U | |
| UNION | Reservada por ANSI. | 
| UNIQUE | Reservada por ANSI. | 
| UPDATE | Reservada por ANSI. | 
| USING | Não pode ser usada como nome de tabela ou alias em uma cláusula FROM. | 
| V | |
| VALUES | Reservada por ANSI. | 
| VIEW | Não pode ser usada como um identificador em um comando SHOW (por exemplo, “SHOW … IN <identificador>”). | 
| W | |
| WHEN | Não pode ser usada como referência de coluna em uma expressão escalar. | 
| WHENEVER | Reservada por ANSI. | 
| WHERE | Reservada por ANSI. | 
| WINDOW | Reservada por ANSI. | 
| WITH | Reservada por ANSI. |