diff --git a/base_external_dbsource_mssql/models/base_external_dbsource.py b/base_external_dbsource_mssql/models/base_external_dbsource.py index c13af8a3e..09f72d470 100644 --- a/base_external_dbsource_mssql/models/base_external_dbsource.py +++ b/base_external_dbsource_mssql/models/base_external_dbsource.py @@ -48,4 +48,8 @@ def _execute_mssql(self, sqlquery, sqlparams, metadata): # If the query doesn't return rows, trying to get them anyway # will raise an exception `sqlalchemy.exc.ResourceClosedError` rows = [r for r in cur] if cur.returns_rows else [] + # cur.returns_rows is False for DML (INSERT/UPDATE/DELETE), + # which need an explicit commit to persist changes. + if not cur.returns_rows: + connection.commit() return rows, cols