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

Откуда:
Сообщений: 34
Здравствуйте
Есть вопрос:)
Есть база данных с 40+ таблицами.
nvarhar в полях не использовался так как не было необходимости. Сейчас возникла проблема с французскими символами
и было решено переделать все поля varchar на nvarchar.
Можно это сделать программно без потери данных?
для всех таблиц сделать преобразование только varchar полей в nvarchar ?
Каким луче способом это сделать?
МБ луче вручную ?
7 июн 12, 12:07    [12680883]     Ответить | Цитировать Сообщить модератору
 Re: изменить поля varchar() на nvarchar()  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну, скрипт напишите.
7 июн 12, 12:08    [12680890]     Ответить | Цитировать Сообщить модератору
 Re: изменить поля varchar() на nvarchar()  [new]
Nelly_lucky
Member

Откуда:
Сообщений: 34
я думал через Designer вручную делать
мне сказали что долго, и нуна делать как то обобщённо для все и сразу
а есть какой нить пример скрипта?
7 июн 12, 12:13    [12680936]     Ответить | Цитировать Сообщить модератору
 Re: изменить поля varchar() на nvarchar()  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Nelly_lucky,

Примерно в этом направлении думать.
select
	'alter table ' + t.name + ' alter column ' + c.name + ' nvarchar('+ convert(varchar(10),c.max_length) + ');'
from 
	sys.tables t
	join sys.columns c on t.[object_id] = c.[object_id]
	join sys.types tp on tp.user_type_id = c.user_type_id
where
	tp.name = 'varchar'
;

Дальше сами.
И кстати, будьте готовы к тому что текстовые поля будут занимать вдвое больше места.
7 июн 12, 12:48    [12681248]     Ответить | Цитировать Сообщить модератору
 Re: изменить поля varchar() на nvarchar()  [new]
kain111
Member

Откуда:
Сообщений: 227
Nelly_lucky,

можно через дизайнер накидать необходимые изменения на каждую таблицу и нажать кнопочку сгенерировать запрос, который можно будет подредактировать. Собрав такие запросы в кучку.
А вообще задачка не так уж тривиальна, необходимо учесть не только таблицы с этими полями, но и программный код их использующий, а это и процедуры SQL и просто вшитые запросы в каком ни будь графическом интерфейсе или что там у вас.
7 июн 12, 13:28    [12681637]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить