Имя: Пароль:
1C
1С v8
SQL: Перенести таблицу из одной базы в другую
,
0 Dmitriy_
Kolesnikov
 
13.03.12
12:44
Здравствуйте!

Клиенты повредили базу. При попытке лечения получаю сообщение об ошибке: Ошибка SQL: Таблица не найдена '_Reference100'
Другими словами, какой-то справочник в БД отсутствует напрочь.
В режиме "Предприятие" база не открывается - вылетает с той же ошибкой.

Но! Есть резервная копия двухдневной давности. И если бы свежая база открывалась, то с помощью обработки  ВыгрузкаЗагрузкаДанныхВФорматеXML можно было бы перенести документы за два дня в старую базу. Но не судьба.

Какие идеи? Идея одна: обе базы развернуть на сервере приложений с MS SQL и в SQL Management studio скопировать таблицу _Reference100 из нерабочей базы в рабочую.

Вопрос: как в SQL Management studio скопировать таблицу из одной базы в другую?
1 КМ155
 
13.03.12
12:46
(0) заскриптовать в "хорошей", запустить скрипт в "плохой"
2 cw014
 
13.03.12
12:46
Если таблицы на одном сервере тогда:

DELETE FROM db1._Reference100

INSERT INTO db1._Reference100 VALUES (SELECT Fld1, Fld2 FROM db2._Reference100)
3 asady
 
13.03.12
12:47
(0) попробуй командой copy
копируй сначала таблицу в файл
потом копируй уже файл в таблицу
4 rs_trade
 
13.03.12
12:48
(0) в старой базе заскриптуй нужную таблицу. в рабочей создай эту таблицу. потом перекинь данные через импорт-экспорт. там все просто и понятно мышкой делается.
5 H A D G E H O G s
 
13.03.12
12:55
Чую, что и в старой базе такой таблицы нет.
6 fisher
 
13.03.12
12:57
(0) У сиквела мощные встроенные средства импорта/экпорта с интерактивными мастерами. Методом научного тыка все легко делается.
7 КМ155
 
13.03.12
12:59
(6) а с паролем sa ТС сможет угандошить ешё и master и многое другое
8 rsv
 
13.03.12
13:01
(0)"то с помощью обработки  ВыгрузкаЗагрузкаДанныхВФорматеXML можно было бы перенести документы за два дня в старую базу " . З

а два дня.....

Жесть. Вот так подсаживают на ВыгрузкаЗагрузкаДанныхВФорматеXML
9 rsv
 
13.03.12
13:05
+(8) select * INTO ТвояТаблицаВновойБазе From ТвояТаблицаВСтаройБазе

Вроде все. Но это методологически неверно. Курсов нет. Сертификата нет. "Вещей нет-кражи нет "
10 hhhh
 
13.03.12
13:12
может не копировать, а просто создать таблицу с таким именем. Чтобы база запустилась. А скопировать можно потом обработкой ВыгрузкаЗагрузкаДанныхВФорматеXML.
11 КМ155
 
13.03.12
13:14
(10) сомнительно,
ВыгрузкаЗагрузкаДанныхВФорматеXML не создаст нужных полей и индексов в _Reference100
12 H A D G E H O G s
 
13.03.12
13:15
(11) ВыгрузкаЗагрузкаДанныхВФорматеXML  - не создаст.
1С - создаст.
13 МихаилМ
 
13.03.12
13:56
(0)

в ssms

1) создаем таблицу с индексами

в базе источнике

выберите мышью таблицу источник

правой кнопкой откройте контекстрое меню

- scrip table as - create to - clipboard


в базе приемнике

new qwary - past  
комментируем --USE

execute


2) копируем данные

в тавлице _Reference  есть поле _Version с типом timestamp  
поэтому с * не получиться
и нужно указать в инсерт и селест все поля



быстро получить список всех полей можно

указав выводить результат запроса SELECT * FROM anyTable

в виде текста  (контекстное меню - results to text)



в полученной строке имен колонок удаляем пробелы, ставим запятые
И удаляем поле _Version

далее


пишем команду


INSERT INTO _Reference100 (список полей)
select список полей
from  [БАЗА ИСТОЧНИК].dbo._Reference100
14 Dmitriy_
Kolesnikov
 
14.03.12
12:44
Благодарю вас всех!

База-то файловая... Попробовал выгрузить её в DT с целью переноса на MSSQL - платформа (15.294) вылетает...
Для работы с базой данных в файле 1CD есть какие-нибудь инструменты?
15 rs_trade
 
14.03.12
12:45
(14) База-то файловая. Какое не существенное уточнение.

chdbfl.exe запускай тогда
16 МихаилМ
 
14.03.12
12:50
(14)
v8: Скиньте программу с инфостарта
спасиббо автору

перед chdbfl.exe сделайте архив
тк она может окончательно разрушить базу
17 Dmitriy_
Kolesnikov
 
14.03.12
22:05
rs_trade, я был абсолютно уверен, что смогу перенести её на MSSQL :)
Ещё раз благодарю всех, тема закрыта.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс