Object Identifiers

An identifier is a string of characters (up to 255 characters in length) used to identify first-class Snowflake “named” objects, including table columns:

  • 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, often simply referred to as object names, must be unique within the context of the object type and the “parent” object:

Account:

Identifiers for account objects (users, roles, warehouses, databases, etc.) must be unique across the entire account.

Databases:

Identifiers for schemas must be unique within the database. To enable resolving schemas that have the same identifiers across databases, Snowflake supports fully-qualifying the schema identifiers in the form of:

<database_name>.<schema_name>

Schemas:

Identifiers for schema objects (tables, views, file formats, stages, etc.) must be unique within the schema. To enable resolving objects that have the same identifiers in different databases/schemas, Snowflake supports fully-qualifying the object identifiers in the form of:

<database_name>.<schema_name>.<object_name>

Tables:

Identifiers for columns must be unique within the table.

Note

UDFs and stored procedures are schema objects; however Snowflake supports UDFs/stored procedures with the same identifier within the same schema (also referred to as “overloading”). For more details, see Naming and overloading procedures and UDFs.

Next Topics: