Контекст сортировки хранимых процессов SQL - PullRequest
2 голосов
/ 08 декабря 2008

Эй, у меня проблема, связанная с сопоставлением, но я не уверен.

Я работаю против резервной копии моей производственной базы данных. Единственное различие в средах SQL Server 2005 (о которых я знаю прямо сейчас) состоит в том, что мой локальный узел имеет «SQL_Latin1_General_CP1_CS_AS» (чувствительный к регистру) в качестве параметров сортировки, а производственная среда имеет «SQL_Latin1_General_CP1_CI_AS» (без учета регистра).

Когда я выполняю хранимые процедуры локально, «Должен объявить скалярную переменную« @firstName »».

Переменная "@FirstName" имеет , которая была объявлена.

Теперь сама база данных является "SQL_Latin1_General_CP1_CI_AS" в качестве параметров сортировки, так почему хранимые процедуры не работают в контексте без учета регистра?

Я изучил это в Интернете, и они в основном говорят, что мне нужно пересобрать мой SQLserver.

Разве контекст базы данных не должен превосходить контекст сервера для сопоставления?

Кстати, master и tempdb чувствительны к регистру SQL_Latin1_General_CP1_CS_AS.

1 Ответ

1 голос
/ 08 декабря 2008

Это ситуация ПЛОХАЯ . Все, что не контролирует параметры сортировки (например, ВЫБРАТЬ ВНУТРИ временную таблицу), сломается, когда вы попытаетесь сделать что-либо с участием varchars. Параметры сортировки по умолчанию для сервера превзойдут все, что явно не приведено в соответствие, а это будет большинство, если не весь существующий код хранимой процедуры.

Обычным решением этой проблемы является переустановка экземпляра SQL Server с правильным сопоставлением . Да, вы действительно должны это сделать. Я знаю, что это из вторых рук, но я понимаю (от кого-то, кто получил техническую поддержку MS, связанную с этой проблемой), что технически возможно изменить параметры сортировки по умолчанию для экземпляра SQL Server, но этот процесс является техническим и подвержен ошибкам, и делает ошибка может привести сервер в нерабочее состояние. Очевидно, эта процедура официально не поддерживается Microsoft, и рекомендуется переустановить экземпляр SQL Server.

...