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 das Verhalten dem im ODBC-Standard definierten Verhalten besser 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 sie 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 ein anderes Verhalten zwischen ODBC- oder DB-Library-Clients beobachten, wenn dieselbe SQL-Anweisung ausgeführt wird, sollten nicht davon ausgehen, dass dies auf ein Problem mit dem SQL Server Native Client ODBC-Treiber verweist. Sie sollten die Anweisung zunächst in der DB-Library-Umgebung mit denselben SET Optionen erneut ausführen, wie sie vom SQL Server Native Client ODBC-Treiber verwendet würden.

Da SET Optionen jederzeit von Nutzern und Anwendungen ein- und ausgeschaltet werden können, sollten Entwickler gespeicherter Prozeduren und Trigger auch darauf achten, ihre Verfahren und Trigger mit den SET oben aufgeführten Optionen sowohl ein- als auch ausgeschaltet zu 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. Trigger oder gespeicherte Prozeduren, die eine bestimmte Einstellung für eine dieser Optionen erfordern, sollten zu Beginn des Triggers oder des gespeicherten Verfahrens eine SET Erklärung ausgeben. Diese SET Anweisung bleibt nur für die Ausführung des Triggers oder der gespeicherten Prozedur gültig; wenn das Verfahren oder der Trigger endet, wird die ursprüngliche Einstellung wiederhergestellt.

Wenn man mit einer SQL Server-Instanz verbunden ist, wird auch eine vierte SET Option aktiviert, CONCAT_NULL_YIELDS_NULL, aktiviert. Der ODBC-Treiber des nativen SQL Server-Clients legt diese Optionen nicht fest, wenn AnsiNPW=NO in der Datenquelle oder in SQLDriverConnect oder SQLBrowseConnect angegeben ist.

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

Damit der Treiber den aktuellen Stand der SET Optionen kennt, sollten ODBC-Anwendungen die Transact-SQL-Anweisung SET nicht verwenden, um diese Optionen einzustellen. Sie sollten diese Optionen nur mithilfe der Datenquelle oder über die Verbindungsoptionen festlegen. Wenn die Anwendung Anweisungen ausgibt SET , kann der Treiber falsche SQL-Anweisungen erzeugen.

Weitere Informationen

Ausführen von ODBC-Anweisungen
SQLDriverConnect
SQLBrowseConnect