Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

MSSQL2008 - Pyodbc - Vorheriges SQL war keine Abfrage

Nur für den Fall, dass ein einsamer Netznomad auf dieses Problem stößt, hat die Lösung von Torxed bei mir nicht funktioniert. Aber folgendes hat bei mir funktioniert.

Ich habe einen SP aufgerufen, der einige Werte in eine Tabelle einfügt und dann einige Daten zurückgibt. Fügen Sie einfach Folgendes zum SP hinzu:

SET NOCOUNT ON

Es wird gut funktionieren :)

Der Python-Code :

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

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

Der 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