Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

MSSQL2008 - Pyodbc - Poprzedni SQL nie był zapytaniem

Na wypadek, gdyby jakiś samotny koczownik sieciowy natrafił na ten problem, rozwiązanie Torxeda nie działało dla mnie. Ale dla mnie zadziałały następujące rzeczy.

Dzwoniłem do SP, który wstawia niektóre wartości do tabeli, a następnie zwraca niektóre dane. Wystarczy dodać następujące elementy do SP:

SET NOCOUNT ON

Będzie działać dobrze :)

Kod Pythona :

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

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać maksymalny wiersz dla każdej grupy w SQL?

  2. Wyzwalacz aktualizujący tylko wstawiony wiersz

  3. Wyodrębnij znaki na prawo od wartości rozdzielanej w instrukcji SELECT

  4. Konfiguracja poczty bazy danych w SQL Server

  5. jak wyświetlić cały raport na jednej stronie za pomocą Konstruktora raportów?