Чувствительность к регистру в SQL Server 2005 - PullRequest
2 голосов
/ 29 декабря 2010

У меня есть хранимая процедура, в которой я объявляю переменную DECLARE @intCount int и использую ее во всей хранимой процедуре как @intcount.

Я выполнил эту хранимую процедуру в 3 базах данных, и все они успешно выполнились, но когда я выполнил ее в четвертой базе данных, отобразилось сообщение

необходимо объявить переменную @ intcount.

Теперь, когда я переименовал его в @intCount в каждой части хранимой процедуры, он также выполнялся в четвертой базе данных.

Значит ли это, что SQL Server чувствителен к регистру? Я знал, что это не так, и то же самое я могу наблюдать в 3 других базах данных.

Можно ли как-то отключить чувствительность к регистру SQL Server?

1 Ответ

2 голосов
/ 29 декабря 2010

Измените параметры сортировки по умолчанию на регистр без учета регистра или напишите SQL с учетом регистра.

http://msdn.microsoft.com/en-us/library/ms184391.aspx

Параметры сортировки зависят от уровня, на котором онопределены.Идентификаторам объектов уровня экземпляра, таким как имена входа и имена баз данных, назначается сопоставление по умолчанию для экземпляра.Идентификаторам объектов в базе данных, таким как таблицы, представления и имена столбцов, назначается сопоставление по умолчанию для базы данных.Например, две таблицы с именами, отличающимися только регистром, могут быть созданы в базе данных с сортировкой с учетом регистра, но не могут быть созданы в базе данных с сортировкой без учета регистра.Для получения дополнительной информации см. Идентификаторы.

Переменные, метки GOTO, временные хранимые процедуры и временные таблицы можно создавать, когда контекст соединения связан с одной базой данных, а затем ссылаться на них, когда контекст был переключен на другую базу данных., Идентификаторы переменных , меток GOTO, временных хранимых процедур и временных таблиц находятся в сопоставлении по умолчанию экземпляра сервера.

...