Даже если ваше приложение не указывает эту опцию явно, разные драйверы ODBC и OLEDB имеют разные значения по умолчанию для параметров подключения.В зависимости от драйвера, этот конкретный параметр может быть задан неявно или наследоваться от настроек базы данных / сервера.
Чтобы увидеть фактическое состояние этого параметра для соединений, установленных вашим приложением, вы можете настройте трассировку профилировщика , которая покажет вам эффективные параметры подключения.
Что касается переопределения поведения драйвера, задав этот параметр, то довольно подробный ответ для аналогичного вопроса на DBAStackExchange.Там вы можете найти несколько возможных подходов и посмотреть, какой из них подходит вам лучше всего.
На стороне SQL одним из возможных решений является замена конкатенации строк +
старого стиля новой функцией concat()
, котораядоступно с SQL Server 2012. Эта функция пропускает аргументы NULL
во время конкатенации, поэтому результат всегда выглядит так, как будто для concat_null_yields_null
установлено значение off
.В зависимости от количества модулей кода SQL в вашей системе, это может быть довольно сложным делом, тем более что трудно различить числовые добавления и конкатенации строк невооруженным глазом.
Я бы порекомендовал присмотреться к некоторыминструменты анализа / рефакторинга кода, которые могут помочь в этом.Не уверен, есть ли у SSDT такая возможность, но я бы сначала начал с нее, поскольку она бесплатна (и, возможно, имеет смысл попробовать Visual Studio 2019, выпущенную 2 дня назад - там что-то может быть).Кроме этого, хорошо ... RedGate, Idera, ApexSQL, вы называете это.Возможно, кто-то уже сделал это.