diff --git a/.changes/unreleased/Fixes-20240411-185203.yaml b/.changes/unreleased/Fixes-20240411-185203.yaml
new file mode 100644
index 000000000..5df91f935
--- /dev/null
+++ b/.changes/unreleased/Fixes-20240411-185203.yaml
@@ -0,0 +1,6 @@
+kind: Fixes
+body: Fix adapter-specific cast handling for constraint enforcement
+time: 2024-04-11T18:52:03.960202-07:00
+custom:
+  Author: michelleark
+  Issue: "166"
diff --git a/dbt/include/global_project/macros/adapters/columns.sql b/dbt/include/global_project/macros/adapters/columns.sql
index e1099649c..663a827b1 100644
--- a/dbt/include/global_project/macros/adapters/columns.sql
+++ b/dbt/include/global_project/macros/adapters/columns.sql
@@ -53,7 +53,7 @@
         {%- do col_naked_numeric.append(col['name']) -%}
       {%- endif -%}
       {% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}
-      cast(null as {{ col['data_type'] }}) as {{ col_name }}{{ ", " if not loop.last }}
+      {{ cast('null', col['data_type']) }} as {{ col_name }}{{ ", " if not loop.last }}
     {%- endfor -%}
     {%- if (col_err | length) > 0 -%}
       {{ exceptions.column_type_missing(column_names=col_err) }}