2016-10-31 1 views
1

Я попытался сделать резервную копию из базы данных, поэтому я хочу импортировать данные из двух таблиц в одну таблицу в другую базу данных Я создал базу данных с теми же столбцами с тем же типы, но я получил ошибкукак импортировать данные из двух таблиц в одну таблицу в другую базу данных

я хочу, чтобы скопировать данные из экзаменаторов и результатов к enthar_backup

enter image description here

и это мой код

Select  T_Examiners.Ex_Barcode, 
      T_Examiners.sold_id, 
      T_Examiners.Ex_name, 
      T_Results.Rs_Barcode, 
      T_Results.Rs_Value, 
      T_Results.Rs_Note, 
      T_Results.Rs_ClassNo 
Into  ENTHAR_DB In 'ent7ar_backup.mdb' 
From  T_Results 
Inner Join T_Examiners On T_Examiners.Ex_Barcode = T_Results.Rs_Barcode 

У меня ошибка рядом с тем, что я должен делать?

+1

Вы не можете просто установить целью оператора insert в качестве файла. Это не имеет никакого смысла. Вам нужно будет использовать связанный сервер для этого типа вещей. https://msdn.microsoft.com/en-us/library/ms188279.aspx Или обе базы данных на одном сервере? Если это так, вы просто обращаетесь к другой базе данных с 3-мя наименованиями. –

+0

Этот синтаксис - беспорядок ... он даже не близок к правильному. Вы не можете использовать 'INTO' или' IN', как вы пытаетесь его использовать. – Siyual

+0

Да, тот же сервер, и что я могу сделать? – Amr

ответ

0

Поскольку это выглядит как обе базы данных находятся в том же сервере, вы можете использовать [Database].[schema].[tablename] для вставки данных, как это:

INSERT INTO ENTHAR_DB.dbo.ent7ar_backup 
(
    Ex_Barcode, 
    sold_id, 
    Ex_name, 
    Rs_Barcode, 
    Rs_Value, 
    Rs_Note, 
    Rs_ClassNo 
) 
SELECT  T_Examiners.Ex_Barcode, 
      T_Examiners.sold_id, 
      T_Examiners.Ex_name, 
      T_Results.Rs_Barcode, 
      T_Results.Rs_Value, 
      T_Results.Rs_Note, 
      T_Results.Rs_ClassNo 
FROM  T_Results 
JOIN T_Examiners ON T_Examiners.Ex_Barcode = T_Results.Rs_Barcode 
+0

Строка или двоичные данные будут усечены. Заявление было прекращено. Я получил эту ошибку – Amr

+0

@Amr, потому что у вас есть данные в одном из исходных столбцов, длина которых больше, чем позволяет пункт назначения. Это НЕ является недостатком этого кода, это проблема из-за ваших структур таблиц. –

+0

Это должен быть ваш столбец 'Rs_Value' в таблице' T_Results', это 'decimal (10,1)' и в таблице 'ent7ar_backup' это' decimal (10, 0) ' –

0

Ваша ошибка в SQL выберите заявление по адресу:

Into ENTHAR_DB In 'ent7ar_backup.mdb' 

Вы не называете имя файла для выбора. Я бы, вероятно, написал его как оператор Insert, а не Select Into. См. Ниже:

INSERT INTO [ENTHAR_DB].[DBO].[ent7ar_backup](Ex_name,Rs_Barcode, sold_id, 
      Rs_Classno, Rs_Note, Rs_Value,Ex_Barcode) 
Select  T_Examiners.Ex_Barcode, 
      T_Examiners.sold_id, 
      T_Examiners.Ex_name, 
      T_Results.Rs_Barcode, 
      T_Results.Rs_Value, 
      T_Results.Rs_Note, 
      T_Results.Rs_ClassNo 
From  T_Results 
Inner Join T_Examiners On T_Examiners.Ex_Barcode = T_Results.Rs_Barcode 
+0

строка или двоичные данные будут усечены Операция завершена Я получил эту ошибку – Amr

+0

@Amr, потому что у вас есть данные в одном из исходных столбцов, длина которых больше, чем позволяет назначение. Это НЕ является недостатком этого кода, это проблема, потому что из ваших табличных структур. –

+0

я отредактировал его, но у меня такая же ошибка :( – Amr

Смежные вопросы