Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel listet auf, was sich in jeder Version des mssql-python-Treibers geändert hat, zuerst neueste. Jeder Abschnitt behandelt neue Funktionen, Verhaltensänderungen und Fehlerbehebungen für eine Version.
Für die Versionen, die Microsoft derzeit unterstützt, siehe Support-Lebenszyklus.
mssql-python 1.14.0
Veröffentlichungsdatum: August 2026
Enhancements
Parametererkennung und -bindung laufen im nativen Code
Die Erkennung und Bindung von Parametertypen läuft jetzt in einer einzigen nativen Pipeline statt in Python-Aufrufen pro Parameter. Diese Änderung behebt einen erheblichen Leistungsengpass mit höheren End-to-End-Durchsätzen bei größeren Operationen wie Bulk-Inserts. Eine Änderung der Anwendung ist nicht erforderlich.
Fehlerkorrekturen
Das Argument timeout , das Abfrage-Timeout statt des Authentifizierungs-Timeout zu connect() setzen
Das Argument timeout legt nun den Authentifizierungsversuch fest SQL_ATTR_LOGIN_TIMEOUT und beschränkt ihn, was der Name des Arguments und der Dokumentation ist. In früheren Versionen wurde dies zum Timeout für Abfragen pro Anweisung, sodass connect(timeout=30) die Dauer eines Verbindungsversuchs nicht begrenzt wurde, und Abfragen wurden nach 30 Sekunden abgebrochen. Der Timeout pro Aussage bleibt als Eigenschaft Connection.timeout verfügbar.
Important
Wenn man langlaufende connect() Anfragen abgebrochen timeout hat, tritt dieses Verhalten nicht mehr auf. Stattdessen Set Connection.timeout . Dasselbe gilt, wenn du darauf angewiesen bist, die Verbindungszeit, die bulkcopy() für die interne Verbindung verwendet wird, zu erweitern: setze Connection.timeout sie connect(timeout=) vor der Erstellung des Cursors.
Weitere Informationen finden Sie unter Verbindungszeit.
bulkcopy() abgelehnt timeout=0
A timeout of 0 hat einen Validierungsfehler ausgelöst, obwohl 0 es keinen Timeout in der zugrunde liegenden Massenkopie-API bedeutet. Die Methode akzeptiert 0 nun und deaktiviert das Operationen-Timeout. Negative, nicht-ganzzahlige und boolesche Werte werden weiterhin abgelehnt.
Weitere Informationen finden Sie unter Massenkopie.
Cleanup ersetzte die ursprüngliche Arrow-Fetch-Ausnahme
Wenn ein Abruf von einem Arrow-Leser fehlschlug, zeigte der Aufräumpfad des Treibers einen zweiten Fehler, der den ursprünglichen ersetzte, sodass Anrufer einen Aufräumfehler anstelle des Fehlers des Abrufs sahen. Die Aufräumung prüft jetzt zuerst den Cursorzustand und bewahrt die ursprüngliche Ausnahme.
executemany() Dezimale Umrechnungsfehler beinhalteten Parameterwerte
Ein Dezimal-Konvertierungsfehler meldete executemany() den beanstandenden Wert über die kettegebundene Ausnahme, die Kundendaten in Anwendungsprotokollen und Überwachungssystemen speichern konnte. Der Fehler meldet nun nur noch den Zeilenindex, den Spaltenindex und den Werttyp.
Weitere Informationen finden Sie unter Fehlerbehandlung.
Massenkopie, abgelehnte Arrow-View-Typen
bulkcopy_arrow() konnte keine variabel langen Arrow View-Arrays verbrauchen, daher mussten zuerst Polars-Spalten string_view umgewandelt DataFrame.to_arrow() werden. String-View-Werte und NULLs passieren nun direkt über die Arrow C Data Interface.
Weitere Informationen finden Sie unter Polars-Integration.
Das Laden der Windows-Erweiterung nutzte die Host-CPU-Architektur
Unter Windows wählte der Treiber seine native Erweiterung basierend auf der Host-CPU und nicht auf dem laufenden Interpreter, sodass x64 Python auf einem ARM64-Host über einen Fallback-Pfad lud und Benachrichtigungen an Stdout schrieb. Der Loader leitet nun die Architektur vom Interpreter ab und meldet Rückfälle als Warnungen.
mssql-python 1.13.0
Veröffentlichungsdatum: August 2026
Enhancements
Die ODBC-Treiberbinäre werden nur in mssql-python-odbc
Version 1.13.0 entfernt den libs/ Fallback vom mssql-python Rad und deklariert mssql-python-odbc==18.6.2.1 in install_requires. Der Befehl pip install mssql-python erzeugt weiterhin einen funktionierenden Treiber. Installiere mssql-python-odbc explizit, wenn du mit --no-depsinstallierst, oder von einem privaten Index, der es nicht spiegelt.
Weitere Informationen finden Sie unter Installation.
Massenkopie von Apache Arrow-Quellen
Die neue cursor.bulkcopy_arrow() Methode lädt bereits Daten im Apache Arrow-Format, ohne dass jede Zeile zuerst in Python-Objekte umgewandelt wird. Führt man eine Arrow-Quelle zu bulkcopy() Now , erhebt TypeErrorman .
Weitere Informationen finden Sie unter Apache Arrow Integration und Bulk Copy.
token_providerParameter für Microsoft Entra-Zugangsdaten
Die connect() Funktion und die Connection Klasse akzeptieren ein token_provider Argument, sodass Sie ein Credential-Objekt DefaultAzureCredential wie zum Beispiel weitergeben können, anstatt einen Authentifizierungsmodus in der Verbindungszeichenfolge zu benennen. Das Argument schließt sich gegenseitig mit dem Authentication Schlüsselwort und den durchgereichten attrs_beforeToken aus und unterstützt nur den kommerziellen Cloud-Bereich von Azure.
Weitere Informationen finden Sie unter Microsoft Entra-Authentifizierung.
Identitätsbewusstes Verbindungspooling
Der Verbindungspool trennt Verbindungen nun nach Microsoft Entra-Identität. In früheren Versionen war der Pool nur auf den Verbindungszeichenfolge angewiesen, sodass der Pool eine als ein Benutzer authentifizierte Verbindung an eine Anfrage eines anderen übergeben konnte. Der Treiber erhält einen Token auch nur, wenn eine Verbindungsanfrage den Pool verfehlt, und aktualisiert eine Poolverbindung, wenn ihr Token innerhalb von 5 Minuten vor Ablauf ist.
Weitere Informationen finden Sie unter Connection pooling.
Fehlerkorrekturen
executemany() fügte null Zeilen ein, wenn NULLs nach der ersten Zeile erschienen
Ein executemany() Aufruf, der nicht-NULL- und NULL-Zahlenwerte mischte, fügte null Zeilen ein und erzeugte keine Ausnahme, als das erste NULL nach der ersten Zeile erschien. Dieses Verhalten beeinflusste Tinyint-, Smallint-, Int- und Float-Parameter . Der Treiber initialisiert nun ODBC-Indikatoren für jeden numerischen Parameter mit fester Breite vor der Ausführung des Arrays.
Ein SQL_WVARCHAR Ausgangswandler transformierte nicht-stringartige Spalten
Das Registrieren eines einzelnen String-Konverters transformierte auch int-, dezimal- und Datumswerte , da der Treiber für jede Spalte ohne eigenen Konverter auf den SQL_WVARCHAR Konverter zurückfiel. Der Treiber verwendet diesen Fallback nun nur noch, wenn der zugeordnete Python-Typ der Spalte oder bytesiststr.
Ausgabekonverter, die durch ganzzahligen SQL-Code registriert wurden, liefen nie
Konverter, die mit einem ganzzahligen SQL-Code wie registriert sind, SQL_DECIMALwurden gespeichert, aber nie aufgerufen, weil der Treiber nur auf dem Python-Typ in dispatchedcursor.description. Der Treiber dispatcht nun zuerst den Integer-Code, dann den Python-Typ und anschließend den SQL_WVARCHAR Fallback.
Important
Wenn du Konverter in einer früheren Version mit ganzzahligem SQL-Code registriert hast, beginnen diese Konverter beim Upgrade zu laufen. Überprüfen Sie sie, bevor Sie sie einsetzen, denn Spaltenwerte, die zuvor unverändert durchgegangen sind, werden jetzt transformiert.
Weitere Informationen finden Sie unter Custom type Converters.
Das Schließen eines Arrow-Readers hat den serverseitigen Cursor nicht freigegeben
Das Schließen eines Arrow-Readers ließ den serverseitigen Cursor zugewiesen und den Elternteil Cursor in einem inkonsistenten Zustand, weil cursor.arrow_reader() ein rohes pyarrow.RecordBatchReaderErgebnis zurückgegeben wurde. Die Methode gibt nun einen Wrapper zurück, dessen close() Methode den serverseitigen Cursor freigibt und den Cursorzustand zurücksetzt, und der Wrapper arbeitet als Kontextmanager.
Weitere Informationen finden Sie unter Apache Arrow Integration.
Ein teilweise initialisierter Cursor wurde in AttributeErrorCursor.__del__
Ein Cursor, dessen Initialisierer fehlschlug, hat während der Garbage Collection ein AttributeError als unerreichbare Ausnahme ausgelöst.
Cursor.__init__ hob auf, bevor es die closed und-attribute hstmt gesetzt hat, die __del__ dann versucht haben, sie zu lesen. Der Initialisierer setzt nun beide Attribute vor jedem Code, der ausgerufen werden kann, und __del__ schützt seinen Logging-Aufruf, damit er beim Abschalten des Interpreters sicher bleibt.
mssql-python 1.12.0
Veröffentlichungsdatum: Juli 2026
Enhancements
Eigenständiges mssql-python-odbc Begleitpaket
Die ODBC-Treiber-Binärdateien werden nun separat als mssql-python-odbc veröffentlicht, ein reines datenbasiertes Begleitpaket, das an Version gepinnt ist 18.6.2. Du musst keinen Code ändern, da pip install mssql-python das Begleitpaket damit installiert wird. Der native Loader bevorzugt das Begleitpaket und greift auf die im Rad enthaltenen mssql-python Binärdateien zurück, wenn es nicht vorhanden ist.
Weitere Informationen finden Sie unter Installation.
Fehlerkorrekturen
cursor.bulkcopy() verwendet jetzt das Verbindungszeitlimit der übergeordneten Verbindung
bulkcopy() Verwendet nun das Verbindungs-Timeout der übergeordneten Verbindung, die man mit connect(..., timeout=<seconds>)setzt. Früher nutzte die separate Verbindung, die eine Massenkopie öffnet, einen fest programmierten 15-sekündigen Verbindungs-Timeout, den man in Python nicht überschreiben konnte. Eine mit erstellte Elternverbindung timeout=0 erhält weiterhin die 15-Sekunden-Standard.
Weitere Informationen finden Sie unter Massenkopie.
cursor.bulkcopy() unterstützt CLR-benutzerdefinierte Typspalten
cursor.bulkcopy()zuvor gescheitert mit Protocol Error: Unsupported TDS type for bulk copy: 0xF0 für jede Zielspalte, die einen benutzerdefinierten Laufzeittyp Common Language (CLR) verwendete, einschließlich der integrierten Typen Geographie, Geometrie und Hierarchie. Der Treiber mappt jetzt die CLR-UDT-Spalten auf varbinary(max) auf dem Draht und streamt die von dir bereitgestellten Bytes als Nutzlast des IBinarySerialize UDT. Die Korrektur wird in mssql_py_core 0.1.7 veröffentlicht.
Weitere Informationen finden Sie unter Bulk copy und Data Type Mappings.
mssql-python 1.11.0
Veröffentlichungsdatum: Juli 2026
Enhancements
Verbesserte Kontextmanager-Semantik
with connection: now commit die Transaktion, wenn der Block sauber verendet, und rollt sie zurück, wenn eine Ausnahme den Block verlässt.
Weitere Informationen finden Sie unter Transaktionsverwaltung.
Fehlerkorrekturen
- Ein GIL-Deadlock im ODBC-Teardown-Pfad (
conn.close()undcursor.close()) sowie inSQLDescribeParamfürNone-wertige Parameter in SSH-Tunnel‑ und In-Process-Forwarder-Einrichtungen wurde behoben. - Feste und
BINARYNULL-ParameterVARBINARYin temporären Tabellen und Tabellenvariablen. Wenn die automatische Typauflösung fehlschlägt, sendet der Treiber nun eine Python-Warnung mit explizitercursor.setinputsizes()-Anweisung. - Fehler
import mssql_pythonauf Apple Silicon mit einer sauberen Installation behoben (Regression in Version 1.8.0). Die gebündelten ODBC-Dylib-Abhängigkeiten werden nun sowohl für die Architekturarm64als auch für die Architekturx86_64umgeschrieben. - Ein GIL-Deadlock im Rust-Kern wurde behoben, der Massenkopiervorgänge beim Authentifizieren mit
Authentication=ActiveDirectoryServicePrincipalzum Einfrieren brachte.
mssql-python 1.10.0
Veröffentlichungsdatum: Juni 2026
Enhancements
ActiveDirectoryServicePrincipal-Unterstützung für Massenkopien
cursor.bulkcopy() Unterstützt Authentication=ActiveDirectoryServicePrincipaljetzt , sodass man mit Service-Principal-Zugangsdaten massenhaft einfügen kann.
Weitere Informationen finden Sie unter Massenkopie und Microsoft Entra-Authentifizierung.
Fehlerkorrekturen
- Probleme mit Nicht-ASCII-Daten in
VARCHARundCHARim Arrow-Fetch-Pfad wurden behoben. - Feste Verbindungszeitbegrenzungen während Großlasten.
mssql-python 1.9.0
Veröffentlichungsdatum: Juni 2026
Enhancements
Zeilenobjekte in Massenkopiervorgängen
cursor.bulkcopy() akzeptiert nun abgerufene Row-Objekte direkt, anstatt eine manuelle Tupelkonvertierung zu erfordern.
Weitere Informationen finden Sie unter Bulk-Copy und Row-Objekte.
Fehlerkorrekturen
- Die feste Wheel-Verpackung ist daher
simdutfimmer statisch verknüpft. - Große
DECIMAL-Einfügungen inexecutemany()behoben. - Der falsche Typ-Fallback für NULL-Parameter wurde behoben.
- Probleme beim Serialisieren und Deserialisieren von Ausnahmen behoben.
-
nextset()behoben, sodassPRINT-Nachrichten über mehrere Ergebnismengen hinweg beibehalten werden. - Behoben wurde die Verarbeitung von
Rowimexecutemany()-Fallback-Pfad bei der Datenausführung. - Feste Fetch-Methoden-Typprüfung für statische Analysetools.
mssql-python 1.8.0
Veröffentlichungsdatum: Mai 2026
Enhancements
ActiveDirectoryMSI-Unterstützung für Massenkopien
cursor.bulkcopy() unterstützt nun Authentication=ActiveDirectoryMSI systemzugeordnete und benutzerzugewiesene verwaltete Identitäten.
Weitere Informationen finden Sie unter Massenkopie und Microsoft Entra-Authentifizierung.
Zeilenindizierung per String-Schlüssel
Sie können jetzt zusätzlich zur Positionsindizierung und zum Attributzugriff über den Spaltennamen, zum Beispiel row["col"], auf Zeilenwerte zugreifen.
Weitere Informationen finden Sie unter Zeilenobjekte.
Upgrade des mitgelieferten ODBC-Treibers
Der mitgelieferte Microsoft ODBC-Treiber für SQL Server wurde auf 18.6.2.1 aktualisiert.
Fehlerkorrekturen
- Behebung von aufgeschobenen Connect-Attribut-Lebensdauerproblemen bei tokenbasierter Authentifizierung.
- Das wiederholte Parsen der Verbindungszeichenfolge im Authentifizierungspfad wurde behoben.
- Feste
executemany()-Typannotationen für Sequenzeingaben.
mssql-python 1.7.1
Veröffentlichungsdatum: Mai 2026
Enhancements
Erweiterte Radabdeckung und Leistungsverbesserungen
Diese Version umfasst:
- RHEL 8-kompatible Felgen.
- Ich habe die macOS Python 3.10
universal2Räder wiederhergestellt. - Verbesserte Handhabung der UTF-16 durch
simdutf. - Optimierter
execute()heißer Pfad.
Leistungsauswirkungen: Der Durchsatz der Batch-Ausführung verbessert sich durch Hot-Path-Optimierungen in der execute() Methode.
Weitere Informationen finden Sie unter Installation.
Fehlerkorrekturen
- Authentifizierungsfehler behoben, sodass sie DB-API Ausnahmen
RuntimeErrorstatt auslösenmssql_python. - Erweiterte GIL-Freigabe bei blockierenden ODBC-Ausführungs-, Abruf-, Transaktions‑ und Verbindungsattributaufrufen.
- Ausfälle von
executemany()beim Vorzeichenwechsel von Dezimalwerten behoben. - Inkonsistente plattformübergreifende Dekodierung von CP1252
VARCHARbehoben. -
cursor.bulkcopy()Fehler bei leeren Zeichenfolgen in den SpaltenNVARCHAR(MAX)undVARCHAR(MAX)behoben.
Note
Version 1.7.0 wurde aufgrund von Veröffentlichungsproblemen zurückgezogen. Verwenden Sie Version 1.7.1 oder neuer.
mssql-python 1.6.0
Veröffentlichungsdatum: April 2026
Enhancements
Parserbasierte Bereinigung von Verbindungszeichenfolgen
Die Sanierung von Verbindungsstrings verwendet jetzt einen Parser statt regulärer Ausdrücke, sodass Verbindungszeichen, die spezielle Zeichen in Passwortfeldern und abgestützte Werte enthalten, korrekt parsen.
Weitere Informationen finden Sie unter Verbindungszeichenfolgen.
Fehlerkorrekturen
- GIL-Freigabe beim Blockieren von ODBC-Verbindungs‑ und ‑Trennvorgängen wurde behoben.
- Abstürze mit
setinputsizes()sowieSQL_DECIMAL‑ undSQL_NUMERIC-Hinweisen behoben. - Das falsche Verhalten von
fetchone()für ODBC-Katalogmethoden wurde behoben. - Fehler aufgrund eines ungültigen Cursorzustands bei Verwendung von
reset_cursor=Falsewurden behoben. - Feste Hinweise vom Typ
executemany()für zuordnungsbasierte Parametersequenzen. - Für
setup_logging(log_file_path=...)wurde ein Schutz vor Pfaddurchquerung hinzugefügt.
mssql-python 1.5.0
Veröffentlichungsdatum: April 2026
Neue Funktionen
Apache Arrow-Abrufunterstützung
Drei neue Cursor-Methoden ermöglichen den hochleistungsfähigen Abruf von Spaltendaten über das Arrow C Data Interface:
-
cursor.arrow()gibt ein vollständigespyarrow.TableErgebnis zurück. -
cursor.arrow_batch()gibt eine einzelnepyarrow.RecordBatchzurück. -
cursor.arrow_reader()gibt zum Streamen einpyarrow.RecordBatchReaderzurück.
Diese Methoden erstellen kein Python-Objekt für jeden Wert. Für vollständige Dokumentation siehe Apache Arrow Integration.
Unterstützung für den Typ sql_variant
Der Treiber erkennt sql_variant nun Spalten beim Abruf, löst ihren zugrundeliegenden Basistyp auf und liefert korrekt typisierte Python-Werte statt Rohbytes.
Note
sql_variant Spalten verwenden einen Streaming-Abrufpfad, was im Vergleich zu Spalten mit festem Datentyp zu leichten Leistungseinbußen führen kann.
Weitere Informationen finden Sie unter Datentypzuordnungen.
Native UUID-Unterstützung
Eine neue native_uuid Einstellung steuert, ob UNIQUEIDENTIFIER Spalten als Objekte (Standard) oder als uuid.UUID pyodbc-kompatible Großbuchstaben-Zeichenketten zurückgegeben werden. Konfigurieren Sie es auf Modulebene oder pro Verbindung.
Weitere Informationen finden Sie unter Modulkonfiguration.
Reihenklasse – Öffentlicher Export
Die Klasse Row wird nun auf der obersten Ebene für Typannotationen exportiert.
Weitere Informationen finden Sie unter Zeilenobjekte.
Fehlerkorrekturen
- False Positive-Erkennung
?innerhalb von Klammern-Identifikatoren, String-Literals und Kommentaren wurde behoben. - Fixierte NULL-Parameterbindung für
VARBINARYSpalten (führt nicht mehr zu impliziten Umrechnungsfehlern). - Behoben wurde ein Problem, bei dem
datetime.time-Werte bei Roundtrips in den SpaltenTIME(1)bisTIME(7)Mikrosekunden verloren. - Der Arrow-Abrufpfad wurde korrigiert, sodass Sekundenbruchteile für
TIME-Spalten korrekt berücksichtigt werden. - Behobene Massenkopie mit Microsoft Entra ID-Authentifizierungsmethoden (veraltete Zugangsdaten verursachen keine Validierungsfehler mehr).
- Zwischengespeicherte Azure Identity-Credential-Instanzen auf Modulebene für eine verbesserte Authentifizierungsleistung.
mssql-python 1.4.0
Veröffentlichungsdatum: Februar 2026
Neue Funktionen
Unterstützung für Massenkopien
Hochleistungs-Bulk-Datenladen ist jetzt über cursor.bulkcopy()verfügbar. Die Methode akzeptiert Optionen für batch_size, timeout, column_mappings, keep_identity, check_constraints, table_lock, keep_nulls, fire_triggers und use_internal_transaction.
Weitere Informationen finden Sie unter Massenkopie.
Improvements
- Leistungsoptimierungen für große Ergebnismengen.
- Reduzierter Speicherverbrauch während Batch-Operationen.
- Verbesserte Fehlermeldungen bei Massen-Kopierfehlern.
mssql-python 1.3.0
Veröffentlichungsdatum: Januar 2026
Neue Funktionen
Klasse „Einstellungen“
Konfigurieren Sie modulweites Verhalten über die neue Settings Klasse, die die lowercase Einstellung für Spaltennamen in cursor.descriptionenthält.
Weitere Informationen finden Sie unter Modulkonfiguration.
Improvements
- Besserer Umgang mit Verbindungszeitbegrenzungen während eines Azure SQL-Failovers.
- Verbesserte Kompatibilität mit Python 3.13.
mssql-python 1.2.0
Veröffentlichungsdatum: Januar 2026
Neue Funktionen
Methoden zur Schema-Entdeckung
Neue Cursor-Methoden erforschen Datenbankmetadaten: , , , primaryKeys(), foreignKeys()procedures(), statistics(), , und getTypeInfo(). columns()tables()
Weitere Informationen finden Sie unter Schema-Entdeckung.
Improvements
- Verbessertes Metadaten-Caching für wiederholte Schema-Abfragen.
- Bessere Handhabung berechneter Spalten bei
columns()-Ergebnissen.
mssql-python 1.1.0
Veröffentlichungsdatum: Dezember 2025
Neue Funktionen
Benutzerdefinierte Ausgabekonverter
Registrieren Sie benutzerdefinierte Funktionen, um Spaltenwerte während des Abrufs zu transformieren, mit add_output_converter(), get_output_converter(), , remove_output_converter()und clear_output_converters().
Weitere Informationen finden Sie unter Custom type Converters.
Improvements
- Bessere Fehlermeldungen bei Fehlschlägen der Typkonvertierung.
- Unterstützung für Konverterfunktionen, die
Nonezurückgeben.
mssql-python 1.0.0
Veröffentlichungsdatum: November 2025
Erste GA-Veröffentlichung
Die erste allgemeine Verfügbarkeitsversion von mssql-python, dem nativen Python-Treiber von Microsoft für SQL Server.
Für weitere Informationen siehe mssql-python driver.
Wichtige Funktionen
- DDBC-Architektur: Direkte Datenbankverbindung ohne Installation eines ODBC-Treibers.
- DB-API 2.0-Konformität: Standard-Python-Datenbankschnittstelle.
- Verbindungs-Pooling: Eingebautes Verbindungs-Pool-Management.
- Microsoft Entra-Authentifizierung: Volle Unterstützung für Azure-Identitätsbasierte Authentifizierung.
- TLS-Verschlüsselung: Sichere Verbindungen mit Zertifikatsvalidierung.
Verbindungsmerkmale
- 21 Verbindungszeichenfolge-Schlüsselwörter.
- 9 Authentifizierungsmodi (SQL, Windows und 7 Microsoft Entra ID-Methoden).
- Autocommit-Steuerung.
- Ausführungsmethoden:
execute(),executemany(), undbatch_execute(). - Verbindungsattribute durch
set_attr()undgetinfo(). - Unterstützung für den Kontextmanager.
Cursor-Funktionen
- Standard-Abrufmethoden:
fetchone(),fetchmany(),fetchall(). - Erweiterte Methoden:
fetchval(),skip(). - Ausführungsmethoden:
execute()undexecutemany(). - Zeilenobjekte mit Attribut- und Indexzugriff.
- Mehrfach-Ergebnis-Set-Navigation mit
nextset().
Datentypunterstützung
- Alle SQL Server-nativen Typen.
- Python↔SQL-Typzuordnungen.
- SQL-Typkonstanten für explizite Typisierung (zum Beispiel
mssql_python.SQL_DECIMAL). - NULL-Handling in Python
None.
Transaktionsunterstützung
- Manuelles Commit und Rollback.
- Autocommit-Modus.
- Steuerung der Isolationsstufe.
- Deadlock-Erkennung und -handhabung.
Authentifizierungsmodi
| Modus | Beschreibung |
|---|---|
| SQL Server Authentifizierung | Benutzername und Kennwort |
| Windows-Authentifizierung | Trusted_Connection |
| ActiveDirectoryDefault | DefaultAzureCredential |
| ActiveDirectoryInteractive | Browserbasierte Anmeldung |
| ActiveDirectoryDeviceCode | Gerätecodefluss |
| ActiveDirectoryPassword | Microsoft Entra Benutzername und Passwort (veraltet; verwendet ROPC) |
| ActiveDirectoryMSI | Verwaltete Identität |
| ActiveDirectoryServicePrincipal | Service Principal |
| ActiveDirectoryIntegrated | Windows Kerberos |
Upgrade
Von pyodbc
Für detaillierte Migrationshinweise siehe Migration von pyodbc.
Wichtige Unterschiede:
- Sowohl
?(qmark) als auch%(name)s(pyformat) Parameterstile werden unterstützt. Deine bestehenden?Abfragen funktionieren ohne Änderungen. - Keine
callproc()Methode. Verwenden Sie stattdessenEXECUTE-Anweisungen. - Integrierte Verbindungspoolverwaltung.
- Keine externe ODBC-Treiberabhängigkeit.
Aus pymssql
Für detaillierte Migrationsratschläge siehe Migrate from pymssql.
Wichtige Unterschiede:
- Ersetzen Sie die Parametermarkierungen
%sund%ddurch?oder%(name)s. - Verwenden Sie einen Verbindungszeichenfolge anstelle von Positionsargumenten.
- Keine FreeTDS-Abhängigkeit.
- Mehrere gleichzeitige Cursor pro Verbindung.
- Zeilenobjekte mit Attributzugriff ersetzen
as_dict=True.
Zwischen mssql-python-Versionen
Rüste den Treiber auf, um neue Funktionen und Verbesserungen zu erhalten.
pip install --upgrade mssql-python
Prüfen Sie vor der Aktualisierung von Produktivsystemen die Versionshinweise auf mögliche inkompatible Änderungen.
Roadmap
Für kommende Funktionen und die Entwicklungsroadmap siehe das GitHub-Repository.