code: def get_sqlserver_product_version(engine: "Engine") -> Tuple[int]:
      
      assert is_sqlserver(engine), (
          "Only call get_sqlserver_product_version() for Microsoft SQL Server "
          "instances."
      )
      sql = "SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)"
      rp = engine.execute(sql)  # type: ResultProxy
      row = rp.fetchone()
      dotted_version = row[0]  # type: str  # e.g. '12.0.5203.0'
      return tuple(int(x) for x in dotted_version.split("."))
docs: Gets SQL Server version information.
  
      Attempted to use ``dialect.server_version_info``:
  
      .. code-block:: python
  
          from sqlalchemy import create_engine
  
          url = "mssql+pyodbc://USER:PASSWORD@ODBC_NAME"
          engine = create_engine(url)
          dialect = engine.dialect
          vi = dialect.server_version_info
  
      Unfortunately, ``vi == ()`` for an SQL Server 2014 instance via
      ``mssql+pyodbc``. It's also ``None`` for a ``mysql+pymysql`` connection. So
      this seems ``server_version_info`` is a badly supported feature.
  
      So the only other way is to ask the database directly. The problem is that
      this requires an :class:`Engine` or similar. (The initial hope was to be
      able to use this from within SQL compilation hooks, to vary the SQL based
      on the engine version. Still, this isn't so bad.)
  
      We could use either
  
      .. code-block:: sql
  
          SELECT @@version;  -- returns a human-readable string
          SELECT SERVERPROPERTY('ProductVersion');  -- better
  
      The ``pyodbc`` interface will fall over with ``ODBC SQL type -150 is not
      yet supported`` with that last call, though, meaning that a ``VARIANT`` is
      coming back, so we ``CAST`` as per the source below.