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

Откуда:
Сообщений: 83
Как через bcp массово экспортировать и импортировать таблицы?
28 дек 11, 15:03    [11839944]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Путем запуска bcp с нужными параметрами.
28 дек 11, 15:03    [11839948]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
maks1991
Member

Откуда:
Сообщений: 83
Гавриленко Сергей Алексеевич,
спасибо а подробнее можно?
28 дек 11, 15:05    [11839960]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Открыть хелп, изучить параметры утилиты bcp, и задать те, которые приведут к нужному вам результату.
28 дек 11, 15:08    [11839981]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
maks1991
Как через bcp массово экспортировать и импортировать таблицы?


Что значит "массово"? Все таблицы из базы?
28 дек 11, 15:36    [11840236]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
maks1991
Member

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

Да! Именно все таблицы из базы
28 дек 11, 20:00    [11842182]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
maks1991
flexgen,

Да! Именно все таблицы из базы


Как тебе уже посоветовали выше для начала изучи утилиту BCP.
А потом для каждой таблицы сгенерируй команду, выполняющую экспорт/импорт данных используя BCP.
29 дек 11, 00:08    [11842998]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
maks1991
Member

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

как bcp пользоваться познал а вот вопрос.
список таблиц я узнаю через информационную схему а вот как взять имена таблиц оттуда и вставить в bcp
29 дек 11, 11:18    [11844368]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
maks1991
список таблиц я узнаю через информационную схему а вот как взять имена таблиц оттуда и вставить в bcp
Вставить в bcp список нельзя.

Как вы знаете, bcp может работать только с одной таблицей, поэтому нужно написать программу, которая вызовет bcp для каждой таблицы из списка.
29 дек 11, 11:22    [11844383]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
maks1991
Member

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

Спасибо с этим разобрался. Проблема состоит как структуру скопировать таблицы и свойство IDENTITY
29 дек 11, 22:59    [11848222]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
rusworl
Member

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

спасибо
29 дек 11, 22:59    [11848225]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
maks1991
Проблема состоит как структуру скопировать таблицы и свойство IDENTITY
Структуру через bcp нельзя, только данные.

Вы начинали с bcp, теперь структура... Вы лучьше про задачу расскажите. Допустим, скопировать базу можно используя мастер копирования или создав снапшёт-репликацию.
29 дек 11, 23:13    [11848274]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
maks1991
Member

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

в общем нужно скопировать таблицы в файл
и потом грубо говоря на другом компе восстановить через delphi
29 дек 11, 23:57    [11848423]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
Облазил все темы связанные с bcp выгрузкой,решение не нашел.
Задача выгрузить данные с 2005 сервера в сервер АСА 9.
Загрузка в АСА происходить будет через load table from file .Так вот файл должен быть формата dat,где поля идут через запятую,но одно но,varchar и char поля должны быть заключены в одинарные кавычки '.
выгружаю с помощью bcp
exec xp_cmdshell 'bcp "select * from dbo.test" queryout c:\1.txt -n -t"," -T -C RAW'
-t"," -запятую между полями проставил
Ключ если он есть отвечающий за кавычки на стринг поля не нашел.
Запросов на выгрузку очень много,таблиц много,писать update полей перед выгрузкой с добавлением кавычек напряжно,причем надо возвращать обратно,да и база не моя ,update полей не дадут делать.
Также при выгрузке если писать select "'"+поле +"'" from ,синтаксическая ошибка.Помогите пожалуйста,срочно надо.Спасибо.
26 янв 12, 11:44    [11974198]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
а почему bcp ? Чем SSIS не угадил? В производительности выиграете в разы.
26 янв 12, 11:57    [11974289]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
Честно сказать с Microsoft SQL Serverом не работал ,первое что про выгрузку данных попалось это bcp утилита.SSIS сейчас поищу,если не сложно подскажите пример или куда смотреть что это.
26 янв 12, 12:03    [11974354]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Voyager_lan
Member

Откуда:
Сообщений: 1493
--__Александр__--
а почему bcp ? Чем SSIS не угадил? В производительности выиграете в разы.

Не факт что служба должна стоять на сервере БД
26 янв 12, 13:30    [11975240]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Misha_LV
Также при выгрузке если писать select "'"+поле +"'" from ,синтаксическая ошибка.Помогите пожалуйста,срочно надо.Спасибо.
Нужно писать
select ''''+поле +'''' from...
26 янв 12, 14:16    [11975716]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
Неужели нет параметра чтоб не писать каждое поле.Большинство таблиц выгружаться будут как select * from where.
26 янв 12, 14:39    [11975974]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
select ''''+поле +'''' from... и даже так не добавляет '
26 янв 12, 14:43    [11976008]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Glory
Member

Откуда:
Сообщений: 104751
Misha_LV
Неужели нет параметра чтоб не писать каждое поле.Большинство таблиц выгружаться будут как select * from where

1. Для выгрузки всей таблицы вовсе не нужно писать select * from. Можно указать имя объекта
2. Существуют format file. Как раз для описания сложных форматов.
26 янв 12, 21:46    [11979593]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
Glory
2. Существуют format file. Как раз для описания сложных форматов.

А можно ли в формат файле указать что если поле string то заключать его в кавычки?
27 янв 12, 09:16    [11980833]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Glory
Member

Откуда:
Сообщений: 104751
Misha_LV
Glory
2. Существуют format file. Как раз для описания сложных форматов.

А можно ли в формат файле указать что если поле string то заключать его в кавычки?

В формат файле указывается разделитель полей. Который может быть больше одного знака
27 янв 12, 10:15    [11981076]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Misha_LV
select ''''+поле +'''' from... и даже так не добавляет '
Я за полминуты сделал тест, у меня добавил.

Напишите наконец что-то большее, чем "у меня ЭВМ не работает"

Скопируйте сюда вызов bcp.
27 янв 12, 10:42    [11981251]     Ответить | Цитировать Сообщить модератору
 Re: Bcp  [new]
Misha_LV
Member

Откуда:
Сообщений: 30
create table _testexport(id integer,names varchar(200),x numeric(4));
delete _testexport;
insert into _testexport
values(1,'Текст',3);
insert into _testexport
values(2,'Еще запись',4);


Надо выгрузить так чтобы string поля были заключены в кавычки.Таблиц много,смирюсь уже с тем что поля надо будет прописывать с выбором если стринг,добавить кавычки.

exec xp_cmdshell 'bcp "select id,''''+names+'''',x from _testexport" where id=1 queryout c:\_testexport.txt -c -t"," -T '

Результат
1,Текст,3
27 янв 12, 11:25    [11981467]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить