diff --git a/CHANGELOG.md b/CHANGELOG.md index 83cd67e6..9639f4b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ### v1.3.2 +#### Features +- Allow setting table `OPTIONS` using `config` + #### Fixes * Install a correct version of `dbt-core` that is compatible with the library diff --git a/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql b/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql index 53bf7221..826beb5e 100644 --- a/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql +++ b/dbt/include/sqlserver/macros/materializations/models/table/create_table_as.sql @@ -1,5 +1,7 @@ {% macro sqlserver__create_table_as(temporary, relation, sql) -%} {%- set as_columnstore = config.get('as_columnstore', default=true) -%} + {%- set option_clause = config.get('option_clause') -%} + {%- set sql_header = config.get('sql_header') -%} {% set tmp_relation = relation.incorporate( path={"identifier": relation.identifier.replace("#", "") ~ '_temp_view'}, type='view')-%} @@ -13,9 +15,16 @@ EXEC('create view {{ tmp_relation.include(database=False) }} as {{ temp_view_sql }} '); + + {% if sql_header %} + {{ sql_header }} + {% endif %} SELECT * INTO {{ relation }} FROM {{ tmp_relation }} + {% if option_clause %} + OPTION( {{ option_clause }} ) + {% endif %} {{ sqlserver__drop_relation_script(tmp_relation) }} @@ -23,4 +32,4 @@ {{ sqlserver__create_clustered_columnstore_index(relation) }} {% endif %} -{% endmacro %} +{% endmacro %} \ No newline at end of file