SQL Server: Warum sollte ich am Ende eines gespeicherten Prozedurnamens "; 1" hinzufügen?

i ist heute auf ein Kompatibilitätsproblem gestoßen, als ein Kunde von Windows XP auf Windows 7 aktualisiert hat.

The (12 Jahre alter Code) ruft eine gespeicherte Prozedur auf dem SQL Server mit dem Namen @ au

ai_nextid

Außer dass, wenn es die gespeicherte Prozedur aufruft, es den Namen verwendet:

ai_nextid;1

Ja, mit einem ";1 "angehängt. Anscheinend ist der SQL Server-Treiber unter Windows 95, Windows 2000, Windows XP und möglicherweise Windows Vista in Ordnung mit diesemspeziel Suffix hinzugefügt. Der SQL Server-ODBC-Treiber in Windows 7 unterscheidet sich jedoch und verursacht den Fehler:

Allgemeiner SQL-Fehler.
[Microsoft] [ODBC SQL-Treiber] [SQL Server] Die gespeicherte Prozedur 'ai_nextid; 1' konnte nicht gefunden werden.
[Microsoft] [ODBC SQL-Treiber] [SQL Server] Indikatorvariable erforderlich, aber nicht angegeben '.

it nativem Fehl 2812.

Dies wirft 4 Fragen auf:

Warum wurden wir angehängt;1 bis zum Ende des gespeicherten Prozedurnamens? (was leistet es) Warum hat der SQL Server-Treiber das ignoriert?Warum wurde in Windows 7 eine grundlegende Änderung vorgenommen?wird die Änderung der Breaking-Kompatibilität dokumentiert?

Die letzten beiden Fragen wären wahrscheinlich die gleichen, denn wenn sie es dokumentieren, würden sie es rechtfertigen.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage