sql >> Base de Datos >  >> RDS >> Sqlserver

MSSQL2008 - Pyodbc - SQL anterior no era una consulta

En caso de que algún nómada solitario de la red se encuentre con este problema, la solución de Torxed no funcionó para mí. Pero lo siguiente funcionó para mí.

Estaba llamando a un SP que inserta algunos valores en una tabla y luego devuelve algunos datos. Simplemente agregue lo siguiente al SP:

SET NOCOUNT ON

Funcionará bien :)

El código Python:

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

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

El PS:

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