Effecten van ISO-opties

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

De ODBC-standaard is nauw overeengekomen met de ISO-standaard, en ODBC-applicaties verwachten standaardgedrag van een ODBC-driver. Om het gedrag beter te laten aansluiten bij dat van de ODBC-standaard, gebruikt de SQL Server Native Client ODBC-driver altijd alle ISO-opties die beschikbaar zijn in de versie van SQL Server waarmee hij verbinding maakt.

Wanneer de SQL Server Native Client ODBC-driver verbinding maakt met een instantie van SQL Server, detecteert de server dat de client de SQL Server Native Client ODBC-driver gebruikt en zet verschillende opties aan.

De bestuurder geeft deze verklaringen zelf af; de ODBC-aanvraag doet niets om ze aan te vragen. Door deze opties in te stellen, kunnen ODBC-applicaties die de driver gebruiken draagbaarder zijn omdat het servergedrag dan overeenkomt met de ISO-standaard.

DB-bibliotheekgebaseerde applicaties schakelen deze opties over het algemeen niet in. Sites die verschillend gedrag tussen ODBC- of DB-Library-clients waarnemen bij het draaien van dezelfde SQL-instructie, mogen niet aannemen dat dit wijst op een probleem met de SQL Server Native Client ODBC-driver. Ze moeten eerst de instructie opnieuw uitvoeren in de DB-Library-omgeving met dezelfde SET opties als de SQL Server Native Client ODBC-driver zou gebruiken.

Omdat SET opties op elk moment door gebruikers en applicaties aan en uit kunnen worden gezet, moeten ontwikkelaars van opgeslagen procedures en triggers ook zorgvuldig hun procedures en triggers testen met de SET hierboven genoemde opties zowel aan als uit. Dit zorgt ervoor dat de procedures en triggers correct werken, ongeacht welke opties een bepaalde verbinding heeft ingesteld wanneer ze de procedure of trigger aanroepen. Triggers of opgeslagen procedures die een bepaalde instelling vereisen voor een van deze opties, moeten aan het begin van de trigger of opgeslagen procedure een SET verklaring afgeven. Deze SET instructie blijft alleen van kracht voor de uitvoering van de trigger of opgeslagen procedure; wanneer de procedure of trigger eindigt, wordt de oorspronkelijke instelling hersteld.

Wanneer je verbinding maakt met een instantie van SQL Server, wordt ook een vierde SET optie ingeschakeld, CONCAT_NULL_YIELDS_NULL, . De SQL Server Native Client ODBC-driver zet deze opties niet op als AnsiNPW=NO is gespecificeerd in de databron of op SQLDriverConnect of SQLBrowseConnect.

Zoals de eerder genoemde ISO-opties, schakelt de SQL Server Native Client ODBC-driver de QUOTED_IDENTIFIER optie niet in als QuotedID=NO is opgegeven in de databron of op SQLDriverConnect of SQLBrowseConnect.

Om de driver de huidige status van opties SET te laten weten, mogen ODBC-applicaties de Transact-SQL-instructie SET niet gebruiken om deze opties in te stellen. Ze zouden deze opties alleen moeten instellen met behulp van de databron of de verbindingsopties. Als de applicatie statements uitgeeft SET , kan de driver onjuiste SQL-instructies genereren.