Данные об импорте/Обновлении от Excel до SQL Server

Я преобразовываю базу данных из Excel на SQL-сервер MS и в основном невежествен.

У файла Excel есть заголовки столбцов GroupID, Имя, участники, Замечания

У стола SQL есть те же самые области.

When I update the SQL some records are totally new, so need to be appended, others need a column or two updated, while most records need nothing at all. So far I've taken the lazy way out & truncated the file & appended everything back in, but what's the proper way?

2
nl ja de
Импортируйте файл как отдельный стол, и можно сделать все обновления оттуда. В зависимости от вашей версии SQL-сервера можно быть в состоянии использовать заявление СЛИЯНИЯ. Это shouldn' t занимают слишком много времени поднимать вставку и заявление обновления.
добавлено автор twoleggedhorse, источник
Достаточно ярмарка, I' ve сделал это ответом:)
добавлено автор twoleggedhorse, источник
@twoleggedhorse, Который должен, вероятно, быть ответом, вы знаете, так как это - ответ (и хороший в этом) и так далее.
добавлено автор Jeremy1026, источник

1 ответы

Импортируйте файл как отдельный стол, и можно сделать все обновления оттуда. В зависимости от вашей версии SQL-сервера можно быть в состоянии использовать СЛИЯНИЕ заявление. Не должно занимать слишком много времени поднимать вставку и заявление обновления.

Что-то вроде этого для обновления:

UPDATE o
SET    name = i.name
FROM   originaltablename o
       INNER JOIN importedexceltablename i
           ON o.GroupID = i.GroupID
WHERE  o.name <> i.name

И что-то вроде этого для вставки:

INSERT INTO originaltablename
SELECT i.*
FROM   importedexceltablename i
       LEFT JOIN originaltablename o
           ON o.GroupID = i.GroupID
WHERE  o.GroupID IS NULL

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

4
добавлено
Спасибо очень! Это хорошо работало на днях, но, кажется, moofing сегодня по некоторым причинам, я продолжаю добираться ** "Сообщение 208, Уровень 16, государственный 1, Линия 3, имя Недопустимого объекта ' o'". ошибка полный код I' m использование: ИСПОЛЬЗОВАНИЕ [Лодки] - выбирает * из [dbo]. [Группы] как o - ВЫБИРАЮТ * - ИЗ [dbo]. [Groups$] как я------ГДЕ ID пустой; ПОЙДИТЕ INSERT INTO o ИЗБРАННЫЙ я.* ОТ [dbo]. [ImportGrp] я ОСТАВИЛ СОЕДИНЕНИЕ [dbo]. [Группы] o НА o. ID = я. ID, ГДЕ o. ID - ПУСТОЕ ПЕЧАТНОЕ ИЗДАНИЕ ' Количество добавленных рядов является ' + БРОСОК (@@ROWCOUNT как случайная работа (6));
добавлено автор Deina Underhill, источник
Попытайтесь изменить линию "INSERT INTO o" так, чтобы это прочитало "INSERT INTO [dbo]. [Группы]"
добавлено автор twoleggedhorse, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)