:mod:`airflow.hooks.mssql_hook`
===============================

.. py:module:: airflow.hooks.mssql_hook


Module Contents
---------------

.. py:class:: MsSqlHook(*args, **kwargs)

   Bases: :class:`airflow.hooks.dbapi_hook.DbApiHook`

   Interact with Microsoft SQL Server.

   .. attribute:: conn_name_attr
      :annotation: = mssql_conn_id

      

   .. attribute:: default_conn_name
      :annotation: = mssql_default

      

   .. attribute:: supports_autocommit
      :annotation: = True

      

   
   .. method:: get_conn(self)

      Returns a mssql connection object



   
   .. method:: set_autocommit(self, conn, autocommit)



   
   .. method:: get_autocommit(self, conn)




