Поделиться через


Действие параметров ISO

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Стандарт ODBC близок к стандарту ISO, а приложения ODBC ожидают стандартного поведения от драйвера ODBC. Чтобы его поведение соответствовало требованиям, определенным в стандарте ODBC, драйвер ODBC собственного клиента SQL Server всегда использует все параметры ISO, доступные в версии SQL Server, с которой он подключается.

Когда драйвер ODBC собственного клиента SQL Server подключается к экземпляру SQL Server, сервер обнаруживает, что клиент использует драйвер ODBC собственного клиента SQL Server и задает несколько параметров.

Драйвер сам формирует эти инструкции; ODBC-приложение не посылает для этого никаких запросов. Установка этих параметров позволяет ODBC-приложениям, использующим драйвер, иметь лучшую переносимость, поскольку в этом случае поведение сервера более соответствует стандарту ISO.

Приложения на основе DB-Library обычно не вызывают включение этих параметров. Сайты, наблюдающие разное поведение между клиентами ODBC или DB-Library при выполнении одной инструкции SQL, не должны предполагать, что это указывает на проблему с драйвером ODBC собственного клиента SQL Server. Сначала необходимо повторно запустить инструкцию в среде библиотеки СУБД с теми же параметрами SET, что и драйвер ODBC собственного клиента SQL Server.

Поскольку пользователи и приложения могут в любое время включать и выключать параметры из набора SET, разработчики хранимых процедур и триггеров должны проводить тестирование своих процедур и триггеров как со включенными, так и с отключенными параметрами из этого набора. Это гарантирует, что триггеры и процедуры будут правильно работать независимо от того, какие параметры конкретное соединение установит при вызове триггера или процедуры. Если для работы триггера или хранимой процедуры требуется конкретное значение одного из этих параметров, инструкцию SET следует выполнить в начале триггера или хранимой процедуры. Она сохраняет силу только до завершения триггера или хранимой процедуры; после этого восстанавливается первоначальное значение параметра.

При подключении к экземпляру SQL Server также устанавливается четвертый параметр SET, CONCAT_NULL_YIELDS_NULL. Драйвер ODBC собственного клиента SQL Server не задает эти параметры, если AnsiNPW=NO указан в источнике данных или в SQLDriverConnect или SQLBrowseConnect.

Как и параметры ISO, указанные ранее, драйвер ODBC собственного клиента SQL Server не включает параметр QUOTED_IDENTIFIER, если QuotedID=NO указан в источнике данных или в SQLDriverConnect или SQLBrowseConnect.

Чтобы драйвер знал текущее состояние параметров SET, приложения ODBC не должны использовать инструкцию Transact-SQL SET для задания этих параметров. Они могут задавать их только через параметры источника данных или соединения. Если приложение запускает инструкции SET, то инструкции SQL, создаваемые драйвером, могут быть неверными.

См. также

Выполнение инструкций (ODBC)
SQLDriverConnect
SQLBrowseConnect