Импорт данных SQL 2012 и объединение данных

#sql #sql-server #excel

#sql #sql-сервер #excel

Вопрос:

Я делаю проект по программированию баз данных с использованием SQL Server 2012 , а также Visual Studio. Я создал несколько таблиц, и у меня есть файл Excel с большим количеством данных. Спецификация на этом этапе заключается в объединении двух таблиц данных Excel, каждая из которых содержит по 11 столбцов (одинаковые столбцы для обоих файлов с разными данными), В отдельную таблицу, которая затем используется позже в проекте для подкачки и т. Д.

Мое первоначальное видение состояло в том, чтобы создать две таблицы: одну таблицу с одной вкладкой данных Excel и другую таблицу с точно таким же именем, за исключением имени для размещения второго набора данных, а затем с помощью объединения объединить две таблицы в одну. Однако прямой импорт в таблицы невозможен (возможно, из-за наличия составного ключа в столбце 1 данных), поэтому я затем создал две новые таблицы, которые теперь содержат данные из листов Excel, однако это не соответствует спецификации объединения файлов в таблицу (как указано вданные по-прежнему находятся в двух таблицах, а не в одной, а также они должны быть в определенной таблице, созданной DDL ранее). Также это не решает проблему, поскольку, похоже, нет способа запросить эти таблицы в существующую таблицу (или есть?)

В любом случае, спасибо за чтение, надеюсь, я включил достаточно информации, если кажется, что я что-то пропустил, не стесняйтесь спрашивать. Я думаю, что идеальным решением для этого было бы объединение с некоторым описанием, таким как union, но, похоже, в любом случае нет возможности связать это соединение с существующей таблицей.

Комментарии:

1. Итак, у вас есть две новые таблицы, импортированные из Excel, и вы хотите импортировать эти данные в одну таблицу sql?

2. Я импортировал файлы Excel в sql, и результирующие данные сохраняются в виде 2 таблиц вместе с другими уже созданными таблицами (хотя, возможно, просто будет проще снова напрямую прочитать файлы Excel, не уверен). Таким образом, вопрос заключается в том, как получить данные из 2 таблиц / Excel в 1 таблицу sql, поскольку важно сохранить первичный ключ и типы данных.

3. Какова таблица sql schema, в которую вы будете импортировать?

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

Ответ №1:

В принципе, вы захотите сделать что-то подобное:

 SET IDENTITY_INSERT MainTable ON
INSERT INTO MainTable (col1, col2, col3 ... col11)
SELECT col1, col2, col3 ... col11
FROM Table1
UNION
SELECT col1, col2, col3 ... col11
FROM Table2
SET IDENTITY_INSERT MainTable OFF
  

Вы специально не упомянули, что у вас есть поле идентификатора для ваших первичных ключей, но я предполагаю, что это так, следовательно, включая команды SET IDENTITY_INSERT .

Комментарии:

1. Большое спасибо, мой тихоокеанский друг (я из Новой Зеландии)! это в значительной степени именно то, что мне было нужно (хотя, похоже, все еще существует проблема с объединением таблиц, в основном из-за стандартизации данных)

2. Не беспокойтесь, приятель, рад, что я смог вам помочь. Да, я в значительной степени самоанский киви, большую часть своей жизни прожил в Новой Зеландии, но теперь в стране Оз: D

3. И бум, я, наконец, решил проблемы стандартизации данных, теперь перейдем к «забавным» вещам 🙂 Еще раз спасибо. Приятель, что ты делаешь в этом мусорном баке? с таким же успехом можно снова вернуться на землю обетованную, люди с любыми навыками sql в наши дни могут совершить убийство в Веллингтоне, хотя, вероятно, могут совершить убийство и где угодно : P

4. Милый, как братан, надеюсь, я смогу когда-нибудь вернуться и совершить «убийство», но прямо сейчас Оз — это то место, где я могу развить свой набор навыков: D