|
|
Сменить 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
|
|
|