| 
    
        
     
     | 
    
  | 
Перегрузка больших объемов данных | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Kaperang    
     24.05.12 
            ✎
    07:27 
 | 
         
        Необходимо перегрузить из одной базы в другую большой объем данных. Объем первичной базы порядка 10 Гбайт на SQL. Как это можно сделать быстрее?     
         | 
|||
| 
    1
    
        Мыш    
     24.05.12 
            ✎
    07:30 
 | 
         
        Бэкап/рестор средствами скуля     
         | 
|||
| 
    2
    
        echo77    
     24.05.12 
            ✎
    07:32 
 | 
||||
| 
    3
    
        strange2007    
     24.05.12 
            ✎
    07:33 
 | 
         
        10 гиг СКЛьный бэкап... выгрузка минут 30 и загрузка столько же. За то без головняков и проблем. Штатные средства 1С     
         | 
|||
| 
    4
    
        Kaperang    
     24.05.12 
            ✎
    08:17 
 | 
         
        Просто выгрзука-загрузка информационной базы не прокатит.
  
        Есть первичная база, где вбиваются данные. Есть вторая база, где вбиваются данные. Конфигурации различные. Было произведено объединение конфигураций. Совпадающих объектов конфигурации нет. Полученная объединенная конфигурация была накинута на вторую базу. Теперь нужно данные из первой базы перекинуть во вторую.  | 
|||
| 
    5
    
        МихаилМ    
     24.05.12 
            ✎
    08:32 
 | 
         
        если база целиком бекап -ресторе
  
        если базы доступгны онлайн dts для 2000 или аналог  | 
|||
| 
    6
    
        shuhard    
     24.05.12 
            ✎
    08:39 
 | 
         
        (4)[Совпадающих объектов конфигурации нет.]+[Теперь нужно данные из первой базы перекинуть во вторую.]
  
        выгрузказагрузкачерезxmlвидентичную  | 
|||
| 
    7
    
        Kaperang    
     24.05.12 
            ✎
    08:43 
 | 
         
        (6) Объем исходной базы порядка 10Гбайт. Пробовал перегрузку через COM (http://infostart.ru/public/61320/) Время перегрузки - около 2 суток. А у меня на все про все одна ночь.     
         | 
|||
| 
    8
    
        Coldboy    
     24.05.12 
            ✎
    08:46 
 | 
         
        Правила обмена мб сделать и перегрузить даанные?     
         | 
|||
| 
    9
    
        aleks-id    
     24.05.12 
            ✎
    08:47 
 | 
         
        вываливаешь скулем таблицы с данными из первой базы в текст с разделителями. заливаешь тексты во вторую     
         | 
|||
| 
    10
    
        shuhard    
     24.05.12 
            ✎
    08:49 
 | 
         
        (7) попробуй выгрузку загрузку в идентичную конфигурацию
  
        с переносом движений и отключенными итогами  | 
|||
| 
    11
    
        Kaperang    
     24.05.12 
            ✎
    08:59 
 | 
         
        (10) это по большому счтеу и пробовал - время перегрузки около 2 суток. А мне надо  побыстрее     
         | 
|||
| 
    12
    
        Kaperang    
     24.05.12 
            ✎
    09:00 
 | 
         
        (9) А можно поподробнее, как именно это сделать?     
         | 
|||
| 
    13
    
        shuhard    
     24.05.12 
            ✎
    09:01 
 | 
         
        (11) либо использовать лучшее железо, например арендовать на ночь супер сервер
  
        либо переносить в лоб, как в (9) данные на сиквеле причем можно и не выгружая напрямую из одной базы на сиквеле в другую  | 
|||
| 
    14
    
        aleks-id    
     24.05.12 
            ✎
    09:03 
 | 
         
        (13) кстати да!     
         | 
|||
| 
    15
    
        aleks-id    
     24.05.12 
            ✎
    09:07 
 | 
         
        insert into [база_куда_вставить].[DBO].[таблица_куда_вставить] from (select * from [база_откуда_брать].[DBO].[таблица_откуда_брать])     
         | 
|||
| 
    16
    
        aleks-id    
     24.05.12 
            ✎
    09:08 
 | 
         
        но (15) сработает если базы на одном скуле     
         | 
|||
| 
    17
    
        shuhard    
     24.05.12 
            ✎
    09:09 
 | 
         
        (16) а как же линкед серверс ?     
         | 
|||
| 
    18
    
        aleks-id    
     24.05.12 
            ✎
    09:11 
 | 
         
        (17) вот ты накой сказал, а? будешь сам ТС объяснять теперь как вывалить из базы на другом серванте :))     
         | 
|||
| 
    19
    
        shuhard    
     24.05.12 
            ✎
    09:13 
 | 
         
        (18) =)     
         | 
|||
| 
    20
    
        Kaperang    
     24.05.12 
            ✎
    09:25 
 | 
         
        (15) А вот это очень похоже на то, что мне нужно.
  
        Сейчас пишу обработку, которая сопоставляет имена таблиц SQL разных баз (На основе штатной функции 1С ПолучитьСтруктуруХраненияБазыДанных(,истина)) Как раз думаю потом к ней прикруть генерилку текста запроса. вопрос в частности был и в том, какой синтаксис SQL запроса использовать. Спасибо за подсказку.  | 
|||
| 
    21
    
        Kaperang    
     24.05.12 
            ✎
    09:26 
 | 
         
        (13) Сервер  - 24 головы (3 проца по 8 ядер), 32 Гига оперативы и прочий неплохой фарш.     
         | 
|||
| 
    22
    
        Kaperang    
     24.05.12 
            ✎
    09:26 
 | 
         
        (16) базы на одном сервере     
         | 
|||
| 
    23
    
        stix2010    
     24.05.12 
            ✎
    09:30 
 | 
         
        (20) сомневаюсь     
         | 
|||
| 
    24
    
        Kaperang    
     24.05.12 
            ✎
    09:30 
 | 
         
        (23)
  
        В чем сомневаетесь?  | 
|||
| 
    25
    
        Kaperang    
     24.05.12 
            ✎
    09:32 
 | 
         
        Получаем описание таблиц одной базы, выгружаем в текстовый файл.
  
        То же - для второй базы. Потом загружаем полученные файлики в две ТаблицаЗначений; И на их основе генерим третью сводную - сравнивая по именам метаданных.  | 
|||
| 
    26
    
        shuhard    
     24.05.12 
            ✎
    09:35 
 | 
         
        (25) проблема не в именах таблиц
  
        проблема во внешних ключах нельзя записать документ раньше справочника  | 
|||
| 
    27
    
        Kaperang    
     24.05.12 
            ✎
    09:36 
 | 
         
        (26) не даст записать? или будут битые ссылки?     
         | 
|||
| 
    28
    
        shuhard    
     24.05.12 
            ✎
    09:37 
 | 
         
        (27) ни каких ссылок не будет     
         | 
|||
| 
    29
    
        Kaperang    
     24.05.12 
            ✎
    09:42 
 | 
         
        (15) а если мне нужно две и более таблицы скопировать?
  
        запросы перечислять через ";"?  | 
|||
| 
    30
    
        МихаилМ    
     24.05.12 
            ✎
    09:46 
 | 
||||
| 
    31
    
        МихаилМ    
     24.05.12 
            ✎
    09:47 
 | 
         
        +(30)
  
        не то  | 
|||
| 
    32
    
        shuhard    
     24.05.12 
            ✎
    09:49 
 | 
         
        (29) а ты в менеджмент студии щёлкни правой кнопкой по любой таблице и выбери пункт скрипт - там весь синтаксис языка станет понятен
  
        только на запуск не запускай =)  | 
|||
| 
    33
    
        Kaperang    
     24.05.12 
            ✎
    09:51 
 | 
         
        А как тут скриншот выложить? Хочу показать, что получилось с сопоставление таблиц баз.     
         | 
|||
| 
    34
    
        Kaperang    
     24.05.12 
            ✎
    11:04 
 | 
         
        Дописал генерилку текста запроса. Получается текст вроде:
  
        insert into [alpha_pr].[DBO].[_Acc30958] from (select * from [alpha_auto_test_Leonid].[DBO].[_Acc5]); insert into [alpha_pr].[DBO].[_AccChngR31299] from (select * from [alpha_auto_test_Leonid].[DBO].[_AccChngR6125]);  | 
|||
| 
    35
    
        Kaperang    
     24.05.12 
            ✎
    11:08 
 | 
         
        (15) Пока гоняю на тестовых базах. 
  
        Выполняю через консоль запросов MS SQL Managment Studio запрос типа: insert into [Konvert2].[DBO].[_Reference7] from (select * from [Konvert].[DBO].[_Reference7]); insert into [Konvert2].[DBO].[_Reference8] from (select * from [Konvert].[DBO].[_Reference8]); insert into [Konvert2].[DBO].[_Reference9] from (select * from [Konvert].[DBO].[_Reference9]); insert into [Konvert2].[DBO].[_Reference9_VT40] from (select * from [Konvert].[DBO].[_Reference9_VT40]); insert into [Konvert2].[DBO].[_Reference10] from (select * from [Konvert].[DBO].[_Reference10]); Выдает ошибку: Сообщение 156, уровень 15, состояние 1, строка 1 Неправильный синтаксис около ключевого слова "from". Сообщение 156, уровень 15, состояние 1, строка 2 Неправильный синтаксис около ключевого слова "from". Сообщение 156, уровень 15, состояние 1, строка 3 Неправильный синтаксис около ключевого слова "from". Сообщение 156, уровень 15, состояние 1, строка 4 Неправильный синтаксис около ключевого слова "from". Сообщение 156, уровень 15, состояние 1, строка 5 Неправильный синтаксис около ключевого слова "from". Сообщение 156, уровень 15, состояние 1, строка 6 Визуально вроде все правильно. Помогите пожалуйста отладить текст запроса.  | 
|||
| 
    36
    
        nicxxx    
     24.05.12 
            ✎
    11:10 
 | 
         
        from (select * 
  
        в этой инструкции from не надо  | 
|||
| 
    37
    
        Kaperang    
     24.05.12 
            ✎
    11:12 
 | 
         
        (36) Чего то не соображу. А полностью строка запроса как будет?     
         | 
|||
| 
    38
    
        nicxxx    
     24.05.12 
            ✎
    11:13 
 | 
         
        insert into [Konvert2].[DBO].[_Reference7] ____удали отсюда from____ (select * from [Konvert].[DBO].[_Reference7])     
         | 
|||
| 
    39
    
        nicxxx    
     24.05.12 
            ✎
    11:13 
 | 
         
        и круглые скобки тоже убери:
  
        insert into [Konvert2].[DBO].[_Reference7] select * from [Konvert].[DBO].[_Reference7]  | 
|||
| 
    40
    
        Kaperang    
     24.05.12 
            ✎
    11:14 
 | 
         
        (39) ок, сейчас попробую     
         | 
|||
| 
    41
    
        Kaperang    
     24.05.12 
            ✎
    11:17 
 | 
         
        (39)
  
        текст запроса: insert into [Konvert2].[DBO].[_Reference7] select * from [Konvert].[DBO].[_Reference7]; выдает ошибку: Сообщение 273, уровень 16, состояние 1, строка 2 Не удалось вставить явное значение в столбец временной метки. Используйте INSERT со списком столбцов, чтобы исключить столбец временной метки, либо вставьте DEFAULT в столбец временной метки.  | 
|||
| 
    42
    
        nicxxx    
     24.05.12 
            ✎
    11:19 
 | 
         
        значит "select *" не катит, перечисляй нужные поля select field1, field2 ...     
         | 
|||
| 
    43
    
        shuhard    
     24.05.12 
            ✎
    11:20 
 | 
         
        (41) есть поля, в которые нельзя записать INSERT,
  
        скорее всего это поле _Version  | 
|||
| 
    44
    
        Kaperang    
     24.05.12 
            ✎
    11:22 
 | 
         
        структуры таблиц идентичны.
  
        мне надо строки из первой скопировать во вторую.  | 
|||
| 
    45
    
        shuhard    
     24.05.12 
            ✎
    11:28 
 | 
         
        (44) Insert Into Приёмник _IDRRef,_Marked,_IsMetadata,_Code,_Description select * FROM Источник     
         | 
|||
| 
    46
    
        aleks-id    
     24.05.12 
            ✎
    11:32 
 | 
         
        заходи во все таблицы __В___ которые будешь перегружать и меняй тип поля _Version с timestamp на datetime
  
        после перегрузки смени назад на timestamp  | 
|||
| 
    47
    
        shuhard    
     24.05.12 
            ✎
    11:35 
 | 
         
        (46) вот ты накой сказал, а? будешь сам ТС объяснять =)     
         | 
|||
| 
    48
    
        aleks-id    
     24.05.12 
            ✎
    11:36 
 | 
         
        (47) 1:1 ))))     
         | 
|||
| 
    49
    
        Kaperang    
     24.05.12 
            ✎
    11:37 
 | 
         
        (46) а если перезгружать все поля, кроме _Version, чего будет?     
         | 
|||
| 
    50
    
        aleks-id    
     24.05.12 
            ✎
    11:39 
 | 
         
        (49) ничего плохого. но придется вместо * перечислять все поля кроме _Version
  
        зы покури синтаксис ALTER TABLE table { [ ALTER COLUMN column_name { new_data_type [ ( precision [ , scale ] ) ] [ COLLATE < collation_name > ] [ NULL | NOT NULL ] | {ADD | DROP } ROWGUIDCOL } ] запросом меняешь тип колонки, выгружаешь данные, меняешь тип колонки назад  | 
|||
| 
    51
    
        Kaperang    
     24.05.12 
            ✎
    11:41 
 | 
         
        (50) мудрено как то... Счас сначала попробую через принудительное перечисление полей.     
         | 
|||
| 
    52
    
        shuhard    
     24.05.12 
            ✎
    11:41 
 | 
         
        (49) счас проверим, грохнем и создадим заново     
         | 
|||
| 
    53
    
        aleks-id    
     24.05.12 
            ✎
    11:42 
 | 
||||
| 
    54
    
        shuhard    
     24.05.12 
            ✎
    11:44 
 | 
         
        (52) тестовая пережила 
  
        ТиИ не ругнулся  | 
|||
| 
    55
    
        nicxxx    
     24.05.12 
            ✎
    11:44 
 | 
         
        а еще быстро перенести большой объем данных можно через урбд     
         | 
|||
| 
    56
    
        Kaperang    
     24.05.12 
            ✎
    11:44 
 | 
         
        (53) сегодня в течение дня поэкспериментирую. Если не прокатит со скулем, на выходные запущу перегрузку традиционным способом. Пускай себе двое суток лопатит.     
         | 
|||
| 
    57
    
        Kaperang    
     24.05.12 
            ✎
    11:44 
 | 
         
        (54) а текст запроса какой?     
         | 
|||
| 
    58
    
        Kaperang    
     24.05.12 
            ✎
    11:46 
 | 
         
        (54) получается на лету изменяем тип поля?     
         | 
|||
| 
    59
    
        shuhard    
     24.05.12 
            ✎
    11:47 
 | 
         
        (57) я удалил _Version и создал заново     
         | 
|||
| 
    60
    
        aleks-id    
     24.05.12 
            ✎
    11:49 
 | 
         
        мда.  
  
        ALTER TABLE [a1].[DBO].[_Reference25] ALTER COLUMN [_Version] datetime Cannot alter column '_Version' because it is 'timestamp'. вобщем или руками тип переделывай у колонки _Version а потом возвращай назад, либо перечисляй все поля.  | 
|||
| 
    61
    
        shuhard    
     24.05.12 
            ✎
    11:49 
 | 
         
        (56) но самый простой вариант, это получить имя таблицы
  
        пробежать по ней ADOX выкинуть _Version и построить текст запроса с явным перечислением полей  | 
|||
| 
    62
    
        shuhard    
     24.05.12 
            ✎
    11:50 
 | 
         
        (60) есть лобовой вариант:
  
        - дропнуть поле - инсертнуть - создать поле  | 
|||
| 
    63
    
        aleks-id    
     24.05.12 
            ✎
    11:54 
 | 
         
        (62) не так.
  
        -дропнуть колонку -создать колонку с типом datetime -инсертнуть -альтернуть тип колонки  | 
|||
| 
    64
    
        shuhard    
     24.05.12 
            ✎
    11:56 
 | 
         
        (63) 2:2 =)     
         | 
|||
| 
    65
    
        Kaperang    
     24.05.12 
            ✎
    11:58 
 | 
         
        текст запроса:
  
        insert into [].[DBO].[_Reference10] select _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld43RRef, _Fld44RRef, _Fld45, _Fld46, _Fld47, _Fld48, _Fld49, _Fld50, _Fld51, _Fld52, _Fld53, _Fld54, _Fld55, _Fld56, _Fld57, _Fld58, _Fld59, _Fld60, _Fld61, _Fld62, _Fld63, _Fld64, _Fld65, _Fld66 from [].[DBO].[_Reference10]; ошибка: Сообщение 1038, уровень 15, состояние 4, строка 1 Имя объекта или столбца отсутствует или пусто. Убедитесь, что каждый из столбцов в инструкции SELECT INTO имеет имя. Для других инструкций проверьте наличие пустых имен-псевдонимов. Не допускаются псевдонимы, определенные как [] или "". Измените псевдоним на допустимое имя. Сообщение 1038, уровень 15, состояние 4, строка 1 Имя объекта или столбца отсутствует или пусто. Убедитесь, что каждый из столбцов в инструкции SELECT INTO имеет имя. Для других инструкций проверьте наличие пустых имен-псевдонимов. Не допускаются псевдонимы, определенные как [] или "". Измените псевдоним на допустимое имя. Я так понимаю, я с именами колонок чего то недосмотрел?  | 
|||
| 
    66
    
        Kaperang    
     24.05.12 
            ✎
    11:59 
 | 
         
        поправил:
  
        insert into [Konvert2].[DBO].[_Reference10] select _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld43RRef, _Fld44RRef, _Fld45, _Fld46, _Fld47, _Fld48, _Fld49, _Fld50, _Fld51, _Fld52, _Fld53, _Fld54, _Fld55, _Fld56, _Fld57, _Fld58, _Fld59, _Fld60, _Fld61, _Fld62, _Fld63, _Fld64, _Fld65, _Fld66 from [Konvert].[DBO].[_Reference10]; теперь ругается: Сообщение 213, уровень 16, состояние 1, строка 1 Имя столбца или число предоставленных значений не соответствует определению таблицы.  | 
|||
| 
    67
    
        shuhard    
     24.05.12 
            ✎
    11:59 
 | 
         
        (65) а где имена колонок в приёмнике ?     
         | 
|||
| 
    68
    
        Kaperang    
     24.05.12 
            ✎
    12:00 
 | 
         
        выбирал все колонка кроме "_Version".     
         | 
|||
| 
    69
    
        Kaperang    
     24.05.12 
            ✎
    12:01 
 | 
         
        (65) А синтакис какой?
  
        insert _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld43RRef, _Fld44RRef, _Fld45, _Fld46, _Fld47, _Fld48, _Fld49, _Fld50, _Fld51, _Fld52, _Fld53, _Fld54, _Fld55, _Fld56, _Fld57, _Fld58, _Fld59, _Fld60, _Fld61, _Fld62, _Fld63, _Fld64, _Fld65, _Fld66 into [Konvert2].[DBO].[_Reference10] select ...  | 
|||
| 
    70
    
        Kaperang    
     24.05.12 
            ✎
    12:08 
 | 
         
        текст запроса:
  
        insert _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld43RRef, _Fld44RRef, _Fld45, _Fld46, _Fld47, _Fld48, _Fld49, _Fld50, _Fld51, _Fld52, _Fld53, _Fld54, _Fld55, _Fld56, _Fld57, _Fld58, _Fld59, _Fld60, _Fld61, _Fld62, _Fld63, _Fld64, _Fld65, _Fld66 into [Konvert2].[DBO].[_Reference10] select _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld43RRef, _Fld44RRef, _Fld45, _Fld46, _Fld47, _Fld48, _Fld49, _Fld50, _Fld51, _Fld52, _Fld53, _Fld54, _Fld55, _Fld56, _Fld57, _Fld58, _Fld59, _Fld60, _Fld61, _Fld62, _Fld63, _Fld64, _Fld65, _Fld66 from [Konvert].[DBO].[_Reference10]; ругается: Сообщение 102, уровень 15, состояние 1, строка 1 Неправильный синтаксис около конструкции ",".  | 
|||
| 
    71
    
        aleks-id    
     24.05.12 
            ✎
    12:12 
 | 
         
        мля....
  
        ALTER TABLE [a1].[DBO].[_Reference25] DROP COLUMN [_Version] ALTER TABLE [a1].[DBO].[_Reference25] ADD _Version datetime NULL INSERT INTO [a1].[DBO].[_Reference25] SELECT * FROM [source].[DBO].[_Reference25] ALTER TABLE [a1].[DBO].[_Reference25] ALTER COLUMN [_Version] timestamp NOT NULL Cannot alter column '_Version' to be data type timestamp. значит только так: ALTER TABLE [a1].[DBO].[_Reference25] DROP COLUMN [_Version] INSERT INTO [a1].[DBO].[_Reference25] SELECT * FROM [source].[DBO].[_Reference25] ALTER TABLE [a1].[DBO].[_Reference25] ADD _Version timestamp NOT NULL  | 
|||
| 
    72
    
        Kaperang    
     24.05.12 
            ✎
    12:14 
 | 
         
        (71) я ж говорю, через ALTER TABLE мудрено...
  
        Работающий запрос: insert into [Konvert2].[DBO].[_Reference10](_IDRRef,_Marked,_IsMetadata,_ParentIDRRef,_Folder,_Code,_Description,_Fld43RRef,_Fld44RRef,_Fld45,_Fld46,_Fld47,_Fld48,_Fld49,_Fld50,_Fld51,_Fld52,_Fld53,_Fld54,_Fld55,_Fld56,_Fld57,_Fld58,_Fld59,_Fld60,_Fld61,_Fld62,_Fld63,_Fld64,_Fld65,_Fld66) select _IDRRef,_Marked,_IsMetadata,_ParentIDRRef,_Folder,_Code,_Description,_Fld43RRef,_Fld44RRef,_Fld45,_Fld46,_Fld47,_Fld48,_Fld49,_Fld50,_Fld51,_Fld52,_Fld53,_Fld54,_Fld55,_Fld56,_Fld57,_Fld58,_Fld59,_Fld60,_Fld61,_Fld62,_Fld63,_Fld64,_Fld65,_Fld66 from [Konvert].[DBO].[_Reference10];  | 
|||
| 
    73
    
        aleks-id    
     24.05.12 
            ✎
    12:19 
 | 
         
        вот так работает
  
        ALTER TABLE [Konvert2].[DBO].[_Reference25] DROP COLUMN [_Version] ALTER TABLE [Konvert2].[DBO].[_Reference25] ADD _Version datetime INSERT INTO [Konvert2].[DBO].[_Reference25] SELECT * FROM [Konvert].[DBO].[_Reference25] ALTER TABLE [Konvert2].[DBO].[_Reference25] DROP COLUMN [_Version] ALTER TABLE [Konvert2].[DBO].[_Reference25] ADD _Version timestamp NOT NULL  | 
|||
| 
    74
    
        Kaperang    
     24.05.12 
            ✎
    12:22 
 | 
         
        отработало.... на то чтобы перегрузить  все объекты базы (демобаза "Конвертация данных") в аналогичную пустую базу ушло 3 минуты 26 секунд.
  
        Средствами самой "Конвертация данных" ушло бы, думаю порядка часа )))  | 
|||
| 
    75
    
        shuhard    
     24.05.12 
            ✎
    12:28 
 | 
         
        (74) осталось малое - освоить ADOX и создать запрос
  
        коренной вопрос: что раньше грузить - номенклатуру или единицы измерения к ней остался за кадром  | 
|||
| 
    76
    
        aleks-id    
     24.05.12 
            ✎
    12:30 
 | 
         
        declare @tablename as varchar(100) -- имя таблицы
  
        declare @sourcebase as varchar(100) -- база источник declare @destbase as varchar(100) -- база приемник SET @tablename='_Reference10' SET @sourcebase='Konvert' SET @destbase='Konvert2' exec('ALTER TABLE ['+@destbase+'].[DBO].['+@tablename+'] DROP COLUMN [_Version]') exec('ALTER TABLE ['+@destbase+'].[DBO].['+@tablename+'] ADD _Version datetime') exec('INSERT INTO ['+@destbase+'].[DBO].['+@tablename+'] SELECT * FROM ['+@sourcebase+'].[DBO].['+@tablename+']') exec('ALTER TABLE ['+@destbase+'].[DBO].['+@tablename+'] DROP COLUMN [_Version]') exec('ALTER TABLE ['+@destbase+'].[DBO].['+@tablename+'] ADD _Version timestamp NOT NULL')  | 
|||
| 
    77
    
        Kaperang    
     24.05.12 
            ✎
    12:30 
 | 
         
        (75) по барабану - просто пока воторой справочник не пегегрузишь - будет много ссылоктипа "Объект не найден"     
         | 
|||
| 
    78
    
        aleks-id    
     24.05.12 
            ✎
    12:31 
 | 
         
        и наверное ветку можно закрывать, а (76) в базу знаний     
         | 
|||
| 
    79
    
        Kaperang    
     24.05.12 
            ✎
    12:32 
 | 
         
        меня сейчас другое занимает - как быть с предопределенными элементами справочников?     
         | 
|||
| 
    80
    
        Kaperang    
     24.05.12 
            ✎
    12:32 
 | 
         
        сча буду тестить...потом отпишусь.....     
         | 
|||
| 
    81
    
        acsent    
     24.05.12 
            ✎
    12:32 
 | 
         
        предопределенные не грузи     
         | 
|||
| 
    82
    
        Kaperang    
     24.05.12 
            ✎
    12:35 
 | 
         
        а как их отфильтровать?     
         | 
|||
| 
    83
    
        shuhard    
     24.05.12 
            ✎
    12:35 
 | 
         
        (79) скорее всего такие элементы помечены _IsMetadata     
         | 
|||
| 
    84
    
        Kaperang    
     24.05.12 
            ✎
    12:36 
 | 
         
        _IsMetadata - это признак предопределенного элемента     
         | 
|||
| 
    85
    
        temsa    
     24.05.12 
            ✎
    12:41 
 | 
         
        (0) А скалько весит вторая база куда собираешься грузить? Если она меньше то лучше ее грузануть на копию первлй пред этим конечно переделав конфу. И вообще что за конфы первая и вторая как они отличаются?     
         | 
|||
| 
    86
    
        Kaperang    
     24.05.12 
            ✎
    12:44 
 | 
         
        Первая "Альфа-Авто",  вторая - "УПП".
  
        Размер обоих баз больше 10 Гигов каждая. Счас слили конфигурации в одну, но общих объектов конфигурации нет.  | 
|||
| 
    87
    
        Kaperang    
     24.05.12 
            ✎
    12:46 
 | 
         
        у меня еще вопрос:
  
        перегрузил один раз. перегружаю тут же еще раз, выдает ошибку: Сообщение 2627, уровень 14, состояние 1, строка 1 Нарушение "PK___Referen__AC8ED0C41A14E395" ограничения PRIMARY KEY. Невозможно вставить повторяющийся ключ в объект "dbo._Reference7". Выполнение данной инструкции было прервано. Понятно, эта запись уже сидит в конечной таблице. А вот можно сделать как-нибудь, чтобы он поверх этой записи перезаписывал?  | 
|||
| 
    88
    
        shuhard    
     24.05.12 
            ✎
    12:55 
 | 
         
        (87) делай delete перед Insert     
         | 
|||
| 
    89
    
        fisher    
     24.05.12 
            ✎
    12:58 
 | 
         
        Ээээ... А нафига со скриптами мучаться? Или я чего-то не понимаю?
  
        Для кого билли DTS и мощнейшие мастера импорта/экспорта делал?  | 
|||
| 
    90
    
        Kaperang    
     24.05.12 
            ✎
    13:00 
 | 
         
        а сопоставлять названия таблиц ручками предлагаете?
  
        У меня порядка 500-800 объектов метаданных. Имена таблиц на SQL отличаются. Предлагаете их руками сопоставлять в мастере экспорта-импорта?  | 
|||
| 
    91
    
        Kaperang    
     24.05.12 
            ✎
    13:02 
 | 
         
        я пошел следующим путем: написал 1С-ную обработку, которая автоматом сопоставляет таблицы по имена метаданных и автоматом генерит текст SQL - запросов.     
         | 
|||
| 
    92
    
        Kaperang    
     24.05.12 
            ✎
    13:15 
 | 
         
        (88) а как именно?
  
        не DELETE ALL же? мне нужно удалить только повторяющиеся строки...  | 
|||
| 
    93
    
        shuhard    
     24.05.12 
            ✎
    14:22 
 | 
         
        (92)[мне нужно удалить только повторяющиеся строки.]
  
        вряд ли тебе стоит осваивать курсоры но если надо - sql.ru там примеров в достатке  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |