Имя: Пароль:
IT
Админ
Сменить collation базы?
0 ДенисЧ
 
18.09.09
14:19
Можно сделать сабж?
На живой базе, разумеется, в смысле в ней данные есть...
1 skunk
 
18.09.09
14:23
2 ДенисЧ
 
18.09.09
14:27
Сообщение 131, уровень 15, состояние 2, строка 32
Размер (2147483647), присвоенный столбец "SP464", превышает максимально допустимый для любого типа данных (8000).


И так для всех строк неограниченной длины...
3 nola
 
18.09.09
14:39
вроде бы же для скл строки неограниченной длины категорически не рекомендуются?
4 ДенисЧ
 
18.09.09
14:39
Решено таким образом

SELECT    'ALTER TABLE ['+ rtrim(TABLE_NAME)+'] ALTER COLUMN ['+rtrim(COLUMN_NAME)+'] '+rtrim(DATA_TYPE)+
   CASE    WHEN NOT(CHARACTER_MAXIMUM_LENGTH IS NULL) OR (CHARACTER_MAXIMUM_LENGTH=0)
       THEN '('+convert(varchar(10),CHARACTER_MAXIMUM_LENGTH)+')'
   END+
   ' COLLATE SQL_Latin1_General_CP1251_CI_AS' COLLATE Latin1_General_CI_AS
   FROM INFORMATION_SCHEMA.COLUMNS
   WHERE    (TABLE_CATALOG=DB_NAME() COLLATE Cyrillic_General_CI_AS) AND
       ((DATA_TYPE LIKE '%char%' COLLATE Cyrillic_General_CI_AS) OR (DATA_TYPE LIKE '%text%' COLLATE Cyrillic_General_CI_AS)) AND
       (COLLATION_NAME IS NOT NULL) AND
       (COLLATION_NAME <> 'SQL_Latin1_General_CP1251_CI_AS' COLLATE Cyrillic_General_CI_AS)



Выдаёт строки, которые нужно выполнить. Только сначала нужно снести индексы по текстовым строкам.
5 ДенисЧ
 
18.09.09
14:40
(3) А 1су пофиг на рекомендации :-0
6 trad
 
18.09.09
14:43
ResetCollation с http://dev.citykirov.ru/