Effekte von ISO-Optionen

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Der ODBC-Standard orientiert sich eng am ISO-Standard, und ODBC-Anwendungen erwarten von einem ODBC-Treiber Standardverhalten. Damit sein Verhalten dem im ODBC-Standard definierten entspricht, verwendet der SQL Server Native Client ODBC-Treiber immer alle ISO-Optionen, die in der Version von SQL Server verfügbar sind, mit der er eine Verbindung herstellt.

Wenn der SQL Server Native Client ODBC-Treiber eine Verbindung mit einer Instanz von SQL Server herstellt, erkennt der Server, dass der Client den SQL Server Native Client ODBC-Treiber verwendet, und legt mehrere Optionen fest.

Der Treiber gibt diese Anweisungen selbst aus; die ODBC-Anwendung fordert sie nicht an. Durch das Einstellen dieser Optionen werden ODBC-Anwendungen, die den Treiber verwenden, besser portierbar, da das Serververhalten dem ISO-Standard entspricht.

DB-Library-basierte Anwendungen aktivieren diese Optionen im Allgemeinen nicht. Websites, die beim Ausführen derselben SQL-Anweisung ein anderes Verhalten zwischen ODBC- oder DB-Library-Clients beobachten, sollten nicht davon ausgehen, dass dies auf ein Problem mit dem SQL Server Native Client ODBC-Treiber hinweist. Sie sollten die Anweisung zuerst in der DB-Library-Umgebung mit den gleichen SET-Optionen erneut ausführen, wie sie vom SQL Server Native Client ODBC-Treiber verwendet werden.

Da SET-Optionen jederzeit von Benutzern und Anwendungen aktiviert und deaktiviert werden können, sollten Entwickler von gespeicherten Prozeduren und Triggern diese mit den oben aufgeführten SET-Optionen sowohl im aktivierten als auch im deaktivierten Zustand testen. Dadurch wird sichergestellt, dass die Prozeduren und Trigger bei ihrem Aufruf korrekt ausgeführt werden, unabhängig davon, welche Optionen eine bestimmte Verbindung festgelegt hat. Wenn ein Trigger oder eine gespeicherte Prozedur eine bestimmte Einstellung für eine dieser Optionen erfordert, sollte am Anfang des Triggers bzw. der gespeicherten Prozedur eine SET-Anweisung ausgeführt werden. Die SET-Anweisung behält ihre Gültigkeit nur während der Ausführung des Triggers bzw. der gespeicherten Prozedur bei. Wenn der Trigger oder die Prozedur beendet ist, wird die ursprüngliche Einstellung wiederhergestellt.

Wenn eine Verbindung mit einer Instanz von SQL Server hergestellt wird, wird auch die vierte SET-Option CONCAT_NULL_YIELDS_NULL aktiviert. Der SQL Server Native Client ODBC-Treiber legt diese Optionen nicht auf fest, wenn AnsiNPW=NO in der Datenquelle oder in SQLDriverConnect oder SQLBrowseConnect angegeben ist.

Wie bei den zuvor erwähnten ISO-Optionen aktiviert der SQL Server Native Client ODBC-Treiber die Option QUOTED_IDENTIFIER nicht, wenn QuotedID=NO in der Datenquelle oder in SQLDriverConnect oder SQLBrowseConnect angegeben ist.

Damit der Treiber den aktuellen Status von SET-Optionen kennen kann, sollten ODBC-Anwendungen die Transact-SQL SET-Anweisung nicht verwenden, um diese Optionen festzulegen. Sie sollten diese Optionen nur mithilfe der Datenquelle oder über die Verbindungsoptionen festlegen. Wenn die Anwendung SET-Anweisungen ausgibt, generiert der Treiber möglicherweise falsche SQL-Anweisungen.

Weitere Informationen

Ausführen von Anweisungen (ODBC)
SQLDriverConnect
SQLBrowseConnect