Форум: "Базы";
Текущий архив: 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.47 MB
Время: 0.011 c