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

Откуда:
Сообщений: 660
Есть таблица в базе
Хочу перенести ее в другую базу - ну там ей место теперь.
но есть поле -uniqueidentifier с default value (newsequentialid())
Подскажите порядок действия в даной ситуации
Sql 2005 Developer
13 май 06, 01:41    [2659958]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
VladRUS.ca
Member

Откуда: Toronto
Сообщений: 1172
А что разве так не работает?
select * into MyNewDB..MyTable from MyOldDB..MyTable
14 май 06, 08:37    [2661216]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
dimka@ultra
Guest
Мммм...

Судя по всему там уже ЕСТЬ таблиця посему силект инту не катит... Так что адназначна инсёт инто ... силект ... фром ...

ИМХО

PS Ограничений на uniqueidentifier явных, по-моему, нет. Так что если чо не то - alter table или alter trigger ...
14 май 06, 11:11    [2661268]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
VladRUS.ca
Member

Откуда: Toronto
Сообщений: 1172
VladRUS.ca
А что разве так не работает?
select * into MyNewDB..MyTable from MyOldDB..MyTable

Виноват, так constraint default newsequentialid() в новою таблицу не переносится...
14 май 06, 18:21    [2661844]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Alexander_fx
Подскажите порядок действия в даной ситуации

Путь "А"
1. Сгенерить скрипт создания таблицы.
2. Создать таблицу в другой базе.
3. Перенести данные командой insert... select...

Путь "В"
На базу правой кнопкой - выбрать Export Data, далее по подсказкам.
15 май 06, 10:15    [2662959]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
а есть ли вообще способ создать копию таблицы используя newsequentialid() в качестве дефолта для нового поля?

К примеру, есть таблица с int identity в качестве первичного ключа, хочу переделать int на uniqueidentifier с монотонно нарастающими значениями. Таблица большая, в смысле записей в ней много. Ну и индексов и прочих объектов типа внешних ключей и других констрэйнтов на ней хватает.

Наименее затратный способ - перелить данные в новую таблицу при помощи select into и уже на ней пересоздать все объекты. Но есть одна проблема - newsequentialid. Если для этого поля использовать cast(null as uniqueidentifier), то как потом залить это поле данными? Вот теми самыми монотонно нарастающими значениями? default constrant на поле не помогает, так как не заполняет уже существующие записи.
19 апр 13, 11:30    [14202444]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Shurgenz
а есть ли вообще способ создать копию таблицы используя newsequentialid() в качестве дефолта для нового поля?
Почему не сделать просто insert...select... ?

Или цель - не писать CREATE TABLE? Тогда можно сделать select into ... where 1=0, а потом insert...select...
19 апр 13, 13:05    [14203332]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
alexeyvg
Shurgenz
а есть ли вообще способ создать копию таблицы используя newsequentialid() в качестве дефолта для нового поля?
Почему не сделать просто insert...select... ?

Или цель - не писать CREATE TABLE? Тогда можно сделать select into ... where 1=0, а потом insert...select...


Ну потому что таблица немаленькая, а select into не логируется, соответственно выполняется быстрее
19 апр 13, 13:29    [14203519]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Shurgenz,

insert ... select ... тоже может минимально журналироваться.
19 апр 13, 13:40    [14203622]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести таблицу с данными в другую базу с полем uniqueidentifier?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31970
Shurgenz
alexeyvg
пропущено...
Почему не сделать просто insert...select... ?

Или цель - не писать CREATE TABLE? Тогда можно сделать select into ... where 1=0, а потом insert...select...


Ну потому что таблица немаленькая, а select into не логируется, соответственно выполняется быстрее
Для инсёрта тоже можно: Руководство по производительности загрузки данных
19 апр 13, 15:47    [14204791]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить