Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Скопировать таблицу на другой сервер без DTS-пакета  [new]
Иван К.
Guest
Как скопировать таблицу на другой сервер без DTS-пакета?
Есть вариант: create table + insert.
Но как скопировать структуру (поля) исходной таблицы? Ведь для create table нужен список полей с типами.
24 сен 15, 17:16    [18191242]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Иван К.,

правый клик по базе - задачи - импорт/экспорт.

или
select * into ... from ... через linked server.
24 сен 15, 17:25    [18191296]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31981
Иван К.
Но как скопировать структуру (поля) исходной таблицы? Ведь для create table нужен список полей с типами.
Например, мышкой в SSMS, если это разовая задача.
24 сен 15, 17:25    [18191298]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Владислав Колосов,

команда select into в таблицу на linked server у меня не проходит. Как я понял не рассчитана она на другой сервер копировать.
(нужно сделать программно)
24 сен 15, 17:31    [18191339]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
alexeyvg,

Нужно сделать програмно.
24 сен 15, 17:33    [18191347]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
ИВК72,

если не проходит и исправить это не можете, то программно не сделаете. Только через выгрузку в файл или пакет.
24 сен 15, 17:38    [18191377]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Владислав Колосов,

Почему же! команды create table и insert работают! (А select into нет!)
24 сен 15, 17:46    [18191423]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
_djХомяГ
Guest
Получите DDL скрипт создания таблицы из SSMS и делайте себе create + insert
24 сен 15, 17:48    [18191438]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
ИВК72
Владислав Колосов,

Почему же! команды create table и insert работают! (А select into нет!)

Это у Вас select into не работает :)
24 сен 15, 17:52    [18191472]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Владислав Колосов,

select into не понимает синтаксис в котором указывается имя сервера (srv.db.dbo.table).
24 сен 15, 17:57    [18191496]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
_djХомяГ,

Структура таблицы может меняться, а копирование должно работать регулярно.
25 сен 15, 08:58    [18193110]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Jaffar
Member

Откуда:
Сообщений: 633
ИВК72
_djХомяГ,

Структура таблицы может меняться, а копирование должно работать регулярно.



Опишите задачу толком нормально, со всеми условиями - тогда помогу - а то здесь ванговать не очень любят -
да и судя по опыту - если задача поставлена х/з как из 3 строчек - то решения автор как правило тут не получает -часто все скатывается в спор между участниками темы, который не имеет отношения к задаче.
25 сен 15, 09:45    [18193239]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
o-o
Guest
ИВК72
Владислав Колосов,
select into не понимает синтаксис в котором указывается имя сервера (srv.db.dbo.table).

это ему в части INTO не нравится.
а в части FROM все ок.

К сообщению приложен файл. Размер - 74Kb
25 сен 15, 10:21    [18193425]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1978
Иван К.
Как скопировать таблицу на другой сервер без DTS-пакета?
Есть вариант: create table + insert.
Но как скопировать структуру (поля) исходной таблицы? Ведь для create table нужен список полей с типами.


Главное - наличие соответствующих прав на обоих серверах. Если права есть - читаем далее.

Запускаете стандартную программу "Import and Export Data", которая устанавливается при установке MS SQL Server-a, указываете сервер-источник и нужную базу, выбираете нужную таблицу для экспорта, потом выбираете сервер-приемник и нужную базу на нем. Если данные надо кинуть в существующую таблицу - выбираете ее и указываете, из какого столбца в какой данные должны копироваться. Также контролируете соответствие типов столбцов таблиц источника и приемника. Если же данные надо вставить в новую таблицу - всё гораздо проще - просто пишете имя для новой таблицы, которая будет создана в выбранной базе сервера-приемника. Дальше нажать пару кнопок и посмотреть, как будет меняться счетчик скопированных строк. Всё!
Как бонус - можно сохранить произведенные настройки как DTSX-пакет, который потом можно изучать, менять и запускать в своё удовольствие.
Одновременно можно копировать данные из нескольких таблиц / представлений одной базы-источника или написать собственный SQL-запрос.
25 сен 15, 10:36    [18193504]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Иван К.
Как скопировать таблицу на другой сервер без DTS-пакета?
Есть вариант: create table + insert.
Но как скопировать структуру (поля) исходной таблицы? Ведь для create table нужен список полей с типами.


Еще как вариант: написать прилагалище на c#, которое скопирует и структуру, и данные.
25 сен 15, 10:39    [18193517]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
o-o
Guest
DaniilSeryi
Как бонус - можно сохранить произведенные настройки как DTSX-пакет, который потом можно изучать, менять и запускать в своё удовольствие.

автор
Скопировать таблицу на другой сервер без DTS-пакета

25 сен 15, 10:50    [18193595]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Jaffar,

Задача сводится к: заскриптовать таблицу на T-SQL.
25 сен 15, 11:14    [18193772]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
ИВК72
Владислав Колосов,

select into не понимает синтаксис в котором указывается имя сервера (srv.db.dbo.table).


Так Вы не туда вставляйте, а оттуда.
25 сен 15, 11:25    [18193864]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Владислав Колосов,

политика безопасности не позволяет "оттуда".
25 сен 15, 11:31    [18193926]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
ИВК72,

политика безопасности же не может запретить выполнение сквозного запроса (openquery)?
25 сен 15, 11:42    [18194013]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
ИВК72
Guest
Владислав Колосов,

Я про то, что чтобы "оттуда" надо соответствующий linked server настраивать, что не позволяет сделать наша политика безопасности.
25 сен 15, 12:08    [18194180]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
o-o
Guest
1. создайте базу tmp (server1)
2. в нее копируйте вашу таблицу через select into.
3. бэкап этой базы (server1)
4. рестор (server2)
5. перенос таблицы снова через select into в нужную базу (server2)
5. дроп таблице (server1, server2)

для следующей таблицы goto 1.
25 сен 15, 12:32    [18194345]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
ИВК72,

Т.е. у вас вообще нет линкед серверов?
25 сен 15, 12:41    [18194394]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
o-o
Guest
Владислав Колосов,

у него точно нет в обратную сторону, с server2 на server1
а как предлагаете организовать вариант с SELECT INTO from server1
при имеющeмся линкованным server2?
25 сен 15, 12:50    [18194432]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать таблицу на другой сервер без DTS-пакета  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
o-o,

ну если обратный линк не настроен, то не получится. Я сначала понял, что просто нет непосредственного доступа к серверу2.
25 сен 15, 13:08    [18194547]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить