Categories:

System functions (System Information)

SYSTEM$DBT_GET_LAST_RUN_TARGET

Note

Some features described on this page require a dbt project object that uses the mutable live version. To get a live-version object, opt in to the 2026_06 behavior change bundle or ask your Snowflake account representative to enable the separate single live version feature. Then create or replace the object, or migrate an existing versioned object with SYSTEM$MIGRATE_DBT_PROJECT. For details, see dbt Projects on Snowflake: dbt project objects migrate to a single mutable live version.

Returns the location of dbt artifacts from the most recent completed execution of a dbt project object within the previous 7 days, whether the execution succeeded or failed. You can import these artifacts into another dbt project execution and use them with --state.

Syntax

SYSTEM$DBT_GET_LAST_RUN_TARGET (
  '<object_name>'
  [ , '<commands>' [ , '<target_path>' ] ]
)

Arguments

object_name

String that specifies the fully qualified name of the dbt project object whose dbt artifacts you want to retrieve.

commands

Optional comma-separated list of dbt commands to include when searching execution history. The default list is compile, build, run, and docs generate.

For a compound command, specify the command and its subcommand, such as docs generate.

target_path

Optional target path to match. When specified, the function considers only executions that used that target path.

Returns

Returns the location of dbt artifacts produced by the object’s most recent completed qualifying execution. Use the location with the IMPORTS parameter of EXECUTE DBT PROJECT or the Snowflake CLI --import option.

Returns NULL if no qualifying completed execution with a populated target directory is available in the lookback window.

Access control requirements

The role used to call this function must have the MONITOR privilege on the dbt project object.

Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.

For instructions on creating a custom role with a specified set of privileges, see Creating custom roles.

For general information about roles and privilege grants for performing SQL actions on securable objects, see Overview of Access Control.

Usage notes

  • The dbt project object must have a completed execution with a populated target directory within the previous 7 days.
  • Deployment-time auto compile doesn’t create dbt artifacts for this function. Complete a qualifying execution after deployment.
  • This function can return dbt artifacts from either a successful or failed execution. Use SYSTEM$DBT_GET_LAST_SUCCESSFUL_RUN_TARGET or SYSTEM$DBT_GET_LAST_FAILED_RUN_TARGET when the execution status matters.
  • --import or IMPORTS makes the returned dbt artifacts available to an execution. You must also point dbt to the mounted directory with --state.
  • To retrieve dbt artifacts for a specific query ID instead, use SYSTEM$LOCATE_DBT_ARTIFACTS or SYSTEM$LOCATE_DBT_ARCHIVE.

Examples

Return the location of dbt artifacts from the most recent completed execution:

SELECT SYSTEM$DBT_GET_LAST_RUN_TARGET(
  'prod_database.dbt_projects.production_project'
);

Import dbt artifacts from the most recent completed run or build execution and use them for a Slim CI run:

EXECUTE DBT PROJECT ci_database.dbt_projects.pr_test_project
  ARGS = 'run --state ./imports/state --defer --select state:modified+'
  IMPORTS = (
    SYSTEM$DBT_GET_LAST_RUN_TARGET(
      'prod_database.dbt_projects.production_project',
      'run,build'
    ) AS 'state'
  );

Import dbt artifacts from the most recent completed execution that used --target-path my_target and use them for a Slim CI run. To retain the default command filter when you specify a target path, pass the default command list as the second argument:

EXECUTE DBT PROJECT ci_database.dbt_projects.pr_test_project
  ARGS = 'run --state ./imports/state --defer --select state:modified+'
  IMPORTS = (
    SYSTEM$DBT_GET_LAST_RUN_TARGET(
      'prod_database.dbt_projects.production_project',
      'compile,build,run,docs generate',
      'my_target'
    ) AS 'state'
  );