SQL.RU
 client/server technologies
 
 Главная | Документация | Статьи | Книги | Форум | Опросы | Рассылка | Работа | Поиск | FAQ |

Добро пожаловать в форум, Guest  >>  Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик  Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
Есть 2 БД одинаковой структуры. Нужно перенести данные из нескольких таблиц из 1-й БД во 2-ю. Импорт/экспорт в Enterprise не помогает. Постоянно вылазит ошибка:
INSERT failed because the following SET options have incorrect settings: 'ARITHABORT'.
Пытался данные переносить, используя 'Use a query to specify the data to transfer' и писать в SQL
set ARITHABORT on. Не помогает.
Скажите пож-ста, че-за заморочки на ровном месте (таблицы одинаковые, а у SQL Servera мозгов не хватает перенести тупо данные из 1 таблицы в другую)? Как решить проблему? Может есть какие-нить нормальные проги, которые позволяют делать импорт/экспорт?
Заранее спасибо!
19 янв 07, 10:20    [3664831] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 21959
А DDL таблиц увидеть можно?
19 янв 07, 10:27    [3664904] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
А как я эту инфу должен получить? Я человек в этом деле новый, поэтому заранее прошу извинить за глупые вопросы. Может поэтому у меня и DTS не работает :(
19 янв 07, 10:36    [3664975] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 21959
В ЕМ правой педалью по таблице и из контекстного меню All Tasks->Generate SQL Script...
19 янв 07, 11:04    [3665202] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
gang
Member

Откуда:
Сообщений: 975
Есть вопрос
таблицы одинаковые, а у SQL Servera мозгов не хватает перенести тупо данные из 1 таблицы в другую?

А чам вас собственно тупой insert ... select.. не устроил?
19 янв 07, 11:09    [3665252] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
gang

А чам вас собственно тупой insert ... select.. не устроил?

Да мне надо делать это часто. + это нужно делать людям, которые не шарят в SQL практически никак.
gang а можно ли написать какой-нить скилет SQL запроса, в который бы я писал имя таблицы, имена баз и он бы из 1-й таблицы тащил данные в другую. Может сделать какую-нить сторед процедуру? Я в это не волоку - помогите плиз. Скажем пишу я в аналайзере:

myCopyTableProc('table_name', 'DB1', 'DB2')

И процедура переписывает данные из DB1.dbo.table_name в DB2.dbo.table_name.
Можно так или это полный бред? :)
19 янв 07, 11:33    [3665482] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
gang
Member

Откуда:
Сообщений: 975
Ну почему же бред. Если базы на одном сервере то достаточно написать inset DB2.dbo.table_name select * from DB1.dbo.table_name. Если на разных, то создать линк и писать: inset LINK_NAME.DB2.dbo.table_name select * from DB1.dbo.table_name. Можно обернуть это дело и процедурой, но это не существенно.
Более интересны следующие вопросы:
1) есть ли в таблицах "специфические" поля (Ключи, Identity и т.п.), т.е. как приемная таблица воспримет например вставку дубликатов строк? Могут ли вообще появиться дубликаты и нужны ли они в приемной таблице. И соответственно нужна ли будет проверка задвоения?
2) Существуют ли всязи по ключам с другими таблицами?
19 янв 07, 12:12    [3665872] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
2 gang:
да какая же более менее серьезная БД без "специфики":
1. есть вычисляемые поля - (их естественно вставлять не надо);
2. identity есть, которые при вставке генерятся сами - их при вставке надо обходить (читать, не писать в инсерте. Благо они все называются типа "имяТаблицы_key");
3. foreing keys тоже есть конечно - но они на этапе переноса таблиц, уже либо будут ссылаться на нужные primary др. таблиц
4. не знаю с переносом бинарных полей (блоб, имэйдж или как они здесь называются) есть проблемы или нет.

Т.е. проблема с п.п. 1-2.
поэтому не отработает: insert DB2.dbo.table_name select * from DB1.dbo.table_name

Можно ли как-нить обойти п.п.1-2 при таких подходах.
P.S. Базы на 1 сервере.
19 янв 07, 12:45    [3666237] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 21959
Есть вопрос
да какая же более менее серьезная БД без "специфики":
1. есть вычисляемые поля - (их естественно вставлять не надо);
Я у вас в первом же посте про скрипт таблицы спросил... (а он как рыба об лёд )
Вот из-за этих вычисляемых и валится всё...
19 янв 07, 12:48    [3666265] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
tpg
Я у вас в первом же посте про скрипт таблицы спросил... (а он как рыба об лёд )
Вот из-за этих вычисляемых и валится всё...


Да-да я извиняюсь конечно. Но вот вы узнали, что они есть - дальше как быть? Что делать? (Кто виноват не спрашиваю - понятно БГ :) )
19 янв 07, 12:51    [3666300] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
gang
Member

Откуда:
Сообщений: 975
Ну так Вы же сами написали, что не вставлять в insert... select... соответствующие поля. Список полей-то и там и там указать можно. Ну а на счет БЛОБов и Имеджей, то по этим темам тут куча топиков исписана. Поищите, если возникнут проблемы по форуму - наверняка что-нить подберете.
19 янв 07, 12:53    [3666325] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
sti
Member

Откуда:
Сообщений: 528
а написать без звездочки не судьба?
insert into DB2.dbo.table_name (f1,f2,f3) select f1,f2,f3 from DB1.dbo.table_name
19 янв 07, 12:57    [3666368] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
От меня хотят уведеть "такую вот штучку" :), которой сказал перенести таблицу отсюда сюда и всё в шоколаде. Кто-нить видел такую? Можно конечно накорячить че-нить на C# (просто я писал наподобие для Oracle), но изобретение велосипеда меня мало привлекает. Еще какие-нить соображения пож-ста предложите?
19 янв 07, 12:58    [3666383] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
gang
Member

Откуда:
Сообщений: 975
Есть вопрос
От меня хотят уведеть "такую вот штучку" :), которой сказал перенести таблицу отсюда сюда и всё в шоколаде. Кто-нить видел такую? Можно конечно накорячить че-нить на C# (просто я писал наподобие для Oracle), но изобретение велосипеда меня мало привлекает. Еще какие-нить соображения пож-ста предложите?
"такая вот штучка" называется, как вам уже сказали, insert ... select.. Написать его вам так или иначе придется все-таки самому, т.к. только Вы в полной мере обладаете информаций о структуре и данных таблицы. А уж во что вы его завернете, из какого и на чем написанного интерфейса подадите юзверю - это уже вопрос 16-й. Хотя может и найдется кто-то кто Вам под ключ решение выкатит.
19 янв 07, 13:04    [3666458] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
Хорошо gang спасибо!
Решение наверно на выходных накатаю на C#. Пусть радуются люди (юзверы) :) Они хорошие и кидать их не хочется.
19 янв 07, 13:09    [3666515] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
И ещё: просто почему я нихочу insertы писать. Да потому, что таких таблиц вагон и знать какую в следующую минуту надо будет перенести нереально. Писать для все SQL, разбираться со структурой таблиц и пр. не хочется каждый раз.
19 янв 07, 13:12    [3666542] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
LmLm
Guest
разбираться со структурой таблиц и пр. не хочется каждый раз.

И не надо.
Просто пишете один раз процедуру для всех таблиц, параметр название таблици и решение проблемы
19 янв 07, 13:17    [3666581] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
2 LmLm:

поподробнее нельзя, пож-ста? Как быть с identity и вычислимыми полями (см. историю топика)? Я не понимаю. Не подскажете?
19 янв 07, 13:20    [3666597] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
LmLm
Guest
Так вам уже сказали

Ну так Вы же сами написали, что не вставлять в insert... select... соответствующие поля. Список полей-то и там и там указать можно. Ну а на счет БЛОБов и Имеджей, то по этим темам тут куча топиков исписана. Поищите, если возникнут проблемы по форуму - наверняка что-нить подберете.


Что конкретно Вас интересует?
19 янв 07, 13:24    [3666639] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
2 LmLm:

Може вам станет ясней так:
таблиц штук 20-30 надо переносить. И не по одному разу естесственно. Какие именно мне пока неизвестно, но как человек с программерским складом ума у меня есть жуткое желание это дело автоматизировать. Вот прошу советов и поводов как это дело на автомате сделать. Руками то колбасить нет охоты :(

:)
19 янв 07, 13:30    [3666709] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
LmLm
Guest
create procedure YourProc
(
@tableName varchar(50)
)
as
begin
if @tableName = 'MyTable1'
begin
   insert into db1.MyTable1([перечисляете поля без identity])
   select [перечисляете поля без identity] from db2.MyTable1
end

if @tableName = 'MyTable2'
begin
   insert into db1.MyTable2([перечисляете поля без identity])
   select [перечисляете поля без identity] from db2.MyTable2
end

-------------------------


if @tableName = 'MyTableN'
begin
   insert into db1.MyTableN([перечисляете поля без identity])
   select [перечисляете поля без identity] from db2.MyTableN
end


end




exec YourProc 'MyTable2'


Что еще нужно для щастья
19 янв 07, 13:33    [3666740] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
Да спасибо конечно LmLm! Но есть одно НО.
Завтра те говорят: перенеси-ка, мил человек, вот эти 8 таблиц. В каждом от 15 до 40 колумнов (не гоню). Я офигею от такой радости, писать инсерты буду полдня. Вы я вижу человек с опытом, почему я немогу перенести их DTS? Хоть это не выход конечно, но все равно.
19 янв 07, 13:40    [3666814] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
LmLm
Guest
Можна перенести DTS - просто не вказывайте соурс и destination поля, которые, например identity. Все должно получится
19 янв 07, 14:00    [3667025] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
Есть вопрос
Guest
Ну я не верю, что таким никто не занимался. Ведь должен же быть простой способ! Подскажите пож-ста
19 янв 07, 14:00    [3667031] Ответить | Цитировать    Сообщить модератору

 Re: Импорт/экспорт таблиц. Перенос данных таблиц с одной БД в другую   [new]
2 LmLm
Guest
Не указываю identity и вычисляемые поля. Все равно:
INSERT failed because the following SET options have incorrect settings: 'ARITHABORT'. (см. мессаг №1).
Создал новые таблицы без индексов - данные переносятся легко. А тут ерунда какая-то получается. :(
Может косяк из-за этой конкретной таблицы:
CREATE TABLE [OSGRP] (
[OSGRP_Rcd] [bigint] NOT NULL CONSTRAINT [OSGRP_OSGRP_Rcd_default] DEFAULT (0),
[OSGRP_Cd] [varchar] (20) COLLATE Cyrillic_General_BIN NULL CONSTRAINT [OSGRP_OSGRP_Cd_default] DEFAULT (''),
[xx_OSGRP_Cd] AS ([OSGRP_Cd] + char(0)) ,
[OSGRP_Nm] [varchar] (100) COLLATE Cyrillic_General_BIN NULL CONSTRAINT [OSGRP_OSGRP_Nm_default] DEFAULT (''),
[OSGRP_Lev] [tinyint] NOT NULL CONSTRAINT [OSGRP_OSGRP_Lev_default] DEFAULT (0),
[OSGRP_AnlKfc] [decimal](5, 2) NOT NULL CONSTRAINT [OSGRP_OSGRP_AnlKfc_default] DEFAULT (0),
[OSGRP_Cmt] [varchar] (50) COLLATE Cyrillic_General_BIN NULL CONSTRAINT [OSGRP_OSGRP_Cmt_default] DEFAULT (''),
[OSGRP_CdNorm] [varchar] (20) COLLATE Cyrillic_General_BIN NULL CONSTRAINT [OSGRP_OSGRP_CdNorm_default] DEFAULT (''),
[OSGRP_OnuRcd] [int] NOT NULL CONSTRAINT [OSGRP_OSGRP_OnuRcd_default] DEFAULT (0),
[OSGRP_Metod] [int] NOT NULL CONSTRAINT [OSGRP_OSGRP_Metod_default] DEFAULT (0),
[OSGRP_MetodN] [int] NOT NULL CONSTRAINT [OSGRP_OSGRP_MetodN_default] DEFAULT (0),
[OSGRP_MetodU] [int] NOT NULL CONSTRAINT [OSGRP_OSGRP_MetodU_default] DEFAULT (0),
[OSGRPATR] [image] NULL ,
[OSGRPKOEF] [image] NULL ,
[bookmark] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
19 янв 07, 14:04    [3667077] Ответить | Цитировать    Сообщить модератору

Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить
Generated time: 187ms.
Rambler's Top100 Powered by ActualForum 1.5.3 [s1] Copyright (c) Alex Sibilev 2000-2010