Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Можно ли поменять значения Case Sensitivity/Insensitivity?   Найти похожие ветки 

 
Nikky   (2003-07-07 19:06) [0]

Для уже работающей базы данных (на MS SQL Server 2000). Просто много таблиц/процедур написано из рассчета что база будет Case Insensetive, а она после многочисленных бэкапов/перестановок стала Sensitive.


 
Johnmen   (2003-07-08 09:29) [1]

Как это она стала чувствительной к регистру ? :)
Она что, живая ?


 
LordOfSilence   (2003-07-08 09:49) [2]

Малой кровью ты уже не отделаешься. Кодовые страницы и порядки
сортировки нужно планировать еще при инсталляции. Теперь тебе
нужно делать экспорт баз в промежуточные хранилища, с последующим
импортом. Тут тебе могут помочь либо DTS, либо утилита BCP.
Backup/Restore не прокатит, так как два SQL сервера (например) не
могут обмениваться таким образом базами, если у них установлены
разные параметры кодировок и сортировок, за исключением случая,
когда порядок сортировки на обоих серверах установлен в двоичный
(Binary order, а не Dictionary order, который по умолчанию). В
последнем случае кодировки могут отличаться.


 
Nikky   (2003-07-08 10:15) [3]

Не вы не так поняли)
допустим процендура
(1)create Proc1 as
(2)declare @id_Item
(3)
(4) select from Items where id_Item = @ID_ITEM
(5)
(6)go

раньше работала, а теперь говорит на строке (4) "must declare variable @ID_ITEM"

и таких процедур несколько сотен


 
Johnmen   (2003-07-08 10:22) [4]

Да...Случай тяжелый....:)
Могу предположить, что д.б. настройки регистрозависимости имен переменных...


 
LordOfSilence   (2003-07-08 10:23) [5]

Так и декларируй ее:
declare @ID_ITEM
либо тогда уже
select from Items where id_Item = @id_Item


 
SergSuper   (2003-07-08 12:35) [6]

Скорее всего изменилось collation для базы. См. команду
ALTER DATABASE database COLLATE < collation_name >

Но вообще хочется сказать что так писать(не соблюая регистр) - это безобразие и исправить всё равно будет полезно


 
Nikky   (2003-07-08 13:15) [7]

Странно, посмотрел Collation,
Cyrillic_General_CI_AI Cyrillic-General, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
...


 
Johnmen   (2003-07-08 13:37) [8]

Так мы говорим о данных или о именах переменных ?


 
Nikky   (2003-07-08 14:15) [9]

;)) о именах переменных)


 
Nikky   (2003-07-08 14:17) [10]

а где выставляется регистронезависимость имен переменных в хранимых процедурах? я что-то не слышал даже о таком


 
Johnmen   (2003-07-08 14:29) [11]

Я тоже не слышал...:)
Вообще, по-моему, в домике MSSQL не всё в порядке...:^)
Такой вариант - пройти по всем системным таблицам, где лежат тексты ХП, и сделать UPPER().
Кстати,
>а теперь говорит на строке (4) "must declare variable @ID_ITEM"
это во время выполнения ? Или создания ?


 
SergSuper   (2003-07-08 15:29) [12]

2 Nikky

Я вообще-то этим давно не занимался. Однако одназначно всё зависит от Collation БД.

The collation of an identifier depends on the level at which it is defined. Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Identifiers of objects within a database, such as tables, views, and column names, are assigned the default collation of the database. For example, two tables with names differing only in case may be created in a database with case-sensitive collation, but may not be created in a database with case-insensitive collation.

Variables, GOTO labels, temporary stored procedures, and temporary tables can be created when the connection context is associated with one database, and then referenced when the context has been switched to another database. The identifiers for variables, GOTO labels, temporary stored procedures, and temporary tables are in the default collation of the instance.

Почитайте еще, повнимательней посмотрите. В любом случае пройти по всем системным таблицам, где лежат тексты ХП, и сделать UPPER() - это из решение из разряда "для кульных хацкеров"

2 Johnmen
То, что Вы чего-то не слышали, не даёт Вам оснований судить о MSSQL



 
Nikky   (2003-07-08 15:48) [13]

Почитайте еще, повнимательней посмотрите. В любом случае пройти по всем системным таблицам, где лежат тексты ХП, и сделать UPPER() - это из решение из разряда "для кульных хацкеров"

вообще-то имена полей далеко не все заглавными буквами обозначены)


 
Johnmen   (2003-07-08 16:14) [14]

>SergSuper (08.07.03 15:29)
>...не даёт Вам оснований ...

За MSSQL обида ? :)




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
6-100851
Chris
2003-05-25 18:32
2003.07.31
Как узнать MAC-адрес


1-100764
Oleg__
2003-07-16 17:27
2003.07.31
Функция Pos


8-100829
Ильдар
2003-04-05 13:04
2003.07.31
Слушаем радио


1-100700
GSergei
2003-07-18 14:06
2003.07.31
Дерево каталогов


11-100659
romychk
2002-11-28 13:02
2003.07.31
Размер программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский