Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

MSSQL2008 - Pyodbc - SQL precedente non era una query

Nel caso in cui qualche nomade solitario della rete si imbattesse in questo problema, la soluzione di Torxed non ha funzionato per me. Ma quanto segue ha funzionato per me.

Stavo chiamando un SP che inserisce alcuni valori in una tabella e quindi restituisce alcuni dati. Basta aggiungere quanto segue all'SP :

SET NOCOUNT ON

Funzionerà bene :)

Il codice Python :

    query = "exec dbo.get_process_id " + str(provider_id) + ", 0"
    cursor.execute(query)

    row = cursor.fetchone()
    process_id = row[0]

L'SP :

USE [DBNAME]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[GET_PROCESS_ID](
    @PROVIDER_ID INT,
    @PROCESS_ID INT OUTPUT
)
AS
BEGIN
    SET NOCOUNT ON
    INSERT INTO processes(provider_id) values(@PROVIDER_ID)
    SET @PROCESS_ID= SCOPE_IDENTITY()
    SELECT @PROCESS_ID AS PROCESS_ID
END