Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Смена Collation для базы данных  [new]
Alexandr Gruzdev
Member

Откуда:
Сообщений: 135
Есть центральный сервер (SQL 2000 SP4) и несколько подписчиков (репликация транзакциями). И на одном подписчике, как оказалось, у БД другой Collation, у сервера тот-же, а у базы данных другой. Из-за этого есть некоторые проблемы при репликациях. Хочу сменить Collation у этой БД на соответствующий Паблишеру, но возникает вопрос, не повлечет ли это негативных последствий для этой базы данных?
11 сен 09, 10:49    [7646227]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
как сказать,от проблемм с темдб, до неработающего клиентского приложения из-за того что код БД (храниомк и т.д.) написан без учета особенностей колелйшина.

А что на что собираетесь менять ? проще ответить будет
-------------------------------------
Jedem Das Seine
11 сен 09, 11:56    [7646688]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Alexandr Gruzdev
Member

Откуда:
Сообщений: 135
На БД паблишера стоит SQL_Latin1_General_CP1_CI_AS, а на БД подписчика Latvian_CI_AS, хочу на БД подписчика накатить тот же Collation сл.образом:
alter database MyDB collate SQL_Latin1_General_CP1_CI_AS
, то есть привести обе базы в соответствие. Вопрос:
1. достаточно ли будет выполнение только этого скрипта, или надо еще пробежаться по символьным полям в таблицах и там дополнительно установить соответствующий Collation?
2. не приведет ли изменение Collation name базы данных к неработоспособности, при том, что в этой базе нет сложных процедур, вложенных триггеров, сложных запросов и функций, не используются временные таблицы?
11 сен 09, 12:20    [7646893]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
Alexandr Gruzdev

1. достаточно ли будет выполнение только этого скрипта, или надо еще пробежаться по символьным полям в таблицах и там дополнительно установить соответствующий Collation?
2. не приведет ли изменение Collation name базы данных к неработоспособности, при том, что в этой базе нет сложных процедур, вложенных триггеров, сложных запросов и функций, не используются временные таблицы?

1. Не так все просто. Если поле используется в других объектах типа индексов, ограничений и тп, то придется удалять эти объекты перед изменением Collation
2. На этот вопрос ответит только тестирование
11 сен 09, 12:28    [7646944]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Alexandr Gruzdev
Member

Откуда:
Сообщений: 135
Может сделать прощще. Создать новую базу с нужным Collation, и в нее восстановить из бэкапа необходимую базу. Или Restor заругается?
11 сен 09, 15:33    [7648413]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Spartakich
Member

Откуда: Riga
Сообщений: 380
restor перезапишет сверху
11 сен 09, 15:38    [7648454]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Alexandr Gruzdev
На БД паблишера стоит SQL_Latin1_General_CP1_CI_AS, а на БД подписчика Latvian_CI_AS, хочу на БД подписчика накатить тот же Collation сл.образом:
alter database MyDB collate SQL_Latin1_General_CP1_CI_AS
, то есть привести обе базы в соответствие.

SQL_Latin1_General_CP1_CI_AS - это древний 'SQL - коллейшн', оставленный в 2000-2008 для совместимости с древними базами. Пока еще поддерживается, но кто его знает, что будет в следующих версиях...

Подумайте хорошенько: может стоит наоборот привести его к более 'свежему' windows-коллейшену Latvian_CI_AS?
11 сен 09, 15:56    [7648605]     Ответить | Цитировать Сообщить модератору
 Re: Смена Collation для базы данных  [new]
Alexandr Gruzdev
Member

Откуда:
Сообщений: 135
Anddros
Alexandr Gruzdev
На БД паблишера стоит SQL_Latin1_General_CP1_CI_AS, а на БД подписчика Latvian_CI_AS, хочу на БД подписчика накатить тот же Collation сл.образом:
alter database MyDB collate SQL_Latin1_General_CP1_CI_AS
, то есть привести обе базы в соответствие.

SQL_Latin1_General_CP1_CI_AS - это древний 'SQL - коллейшн', оставленный в 2000-2008 для совместимости с древними базами. Пока еще поддерживается, но кто его знает, что будет в следующих версиях...

Подумайте хорошенько: может стоит наоборот привести его к более 'свежему' windows-коллейшену Latvian_CI_AS?

Привел бы, но на центр.сервере с Этим Collations, 300 таблиц, 2000 вьюшек 200 процедур и ...
Вот если бы решение было - раз и готово, тогда и проблем бы не было.
11 сен 09, 16:24    [7648800]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить