title: pandas/sqlalchemy/pyodbc: Result object does not return rows from stored proc when UPDATE statement appears before SELECT
body: <p>I'm using SQL Server 2014, pandas 0.23.4, sqlalchemy 1.2.11, pyodbc 4.0.24, and Python 3.7.0. I have a very simple stored procedure that performs an UPDATE on a table and then a SELECT on it:</p>
  
  <pre><code>CREATE PROCEDURE my_proc_1
      @v2     INT
  AS
  BEGIN
      UPDATE my_table_1 
      SET v2 = @v2 
      ;
  
      SELECT * from my_table_1
      ;
  END 
  GO
  </code></pre>
  
  <p>This runs fine in MS SQL Server Management Studio. However, when I try to invoke it via Python using this code:</p>
  
  <pre><code>import pandas as pd
  from sqlalchemy import create_engine
  
  if __name__ == "__main__":
      conn_str = 'mssql+pyodbc://@MODEL_TESTING'
      engine = create_engine(conn_str)
      with engine.connect() as conn:
          df = pd.read_sql_query("EXEC my_proc_1 33", conn)
          print(df)
  </code></pre>
  
  <p>I get the following error:</p>
  
  <blockquote>
    <p>sqlalchemy.exc.ResourceClosedError: This result object does not return
    rows. It has been closed automatically.</p>
  </blockquote>
  
  <p>(Please let me know if you want full stack trace, I will update if so)</p>
  
  <p>When I remove the UPDATE from the stored proc, the code runs and the results are returned. Note also that selecting from a table other than the one being updated does not make a difference, I get the same error. Any help is much appreciated.</p>