Выполнить более одного оператора select с использованием одного курсора pyodbc?

#python #sql-server #pyodbc

#python #sql-сервер #pyodbc

Вопрос:

Я использую pyodbc для подключения к серверу SQL Server и выполнения моего запроса, например:

 connection=connect(...)
cursor=connection.cursor()
cursor.execute('''
    SELECT ...
    INTO #temp_table_1
    FROM table1

    SELECT ...
    INTO #temp_table_2
    FROM #temp_table_1

    SELECT *
    FROM #temp_table_2
''')
result=cursor.fetch_all()
  

Но кажется, что результат равен нулю, и мне интересно, почему. Способен ли pyodbc возвращать результат только первого оператора?

Комментарии:

1. соединитель pyodbc (или pymysql) не допускает несколько операторов в вызове SQL. Это проблема синтаксического анализа движка. github.com/mkleehammer/pyodbc/wiki/Cursor#description

2. Добавьте SET NOCOUNT ON; в начало вашего блока кода и посмотрите, поможет ли это.

3. @GordThompson это работает, спасибо!