An identifier is a string of characters (up to 256 characters in length) used to identify first-class “named” objects, including table columns, in Snowflake:
- Identifiers are specified at object creation time and then are referenced in queries and DDL/DML statements.
- Identifiers can also be defined in queries as aliases (e.g.
SELECT a+b AS "the sum";).
Object identifiers must be unique within the context of the object type and the “parent” object:
|Account:||Objects identifiers (for users, roles, warehouses, databases, etc.) must be unique across the entire account.|
|Databases:||Schema identifiers must be unique within the database.|
|Schemas:||Objects identifiers (for tables, views, file formats, stages, etc.) must be unique within the schema.|
|Tables:||Column identifiers must be unique within the table.|
UDFs are schema objects, but Snowflake supports UDFs with the same identifier within the same schema (also referred to as “overloading” UDF names). For more information, see Overview of UDFs.
Stored procedures are schema objects, but Snowflake supports stored procedures with the same identifier within the same schema (also referred to as “overloading” stored procedures names). For more information, see Naming Conventions for Stored Procedures.
To enable resolving schema objects that have the same identifiers in different databases/schemas, Snowflake supports fully-qualifying objects in the form of: