Я думаю, что импорт с использованием одного из упомянутых методов идеален, если это действительно большой файл, но вы можете использовать Excel для создания операторов вставки:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
В MS SQL вы можете использовать:
SET NOCOUNT ON
Отказаться от отображения всех комментариев "затронуты 1 строка". И если вы делаете много строк и выдает ошибки, время от времени помещайте GO между операторами
Я использовал, =CONCATENATE()но использование &знака улучшает читаемость!
mastazi
1
@mastazi Согласен! Я переключился на, &когда CONCATENATE()некоторое время назад натолкнулся на ограничение параметра , это не обычная проблема, теперь, когда ограничение составляет 255 параметров, но я никогда не думаю о возврате.
Hart CO
1
CONCATENATE () - это путь. Просто щелкните значок fx в строке формул, чтобы увидеть, что вы ввели. Это намного чище, чем просто использовать и подписывать. Конечно, использовать знак & - это круто, но иногда, когда у вас есть двойные кавычки или одинарные кавычки, это заставит вас вечно считать то, чего не хватает.
ian0411 02
1
Не работает при наличии кавычек в ячейках. Проверьте мой ответ на исправленную версию.
Саймон Баарс
2
@PreshanPradeepa. Вы можете использовать тот же синтаксис, SQL Server не заботится о том, находится ли целое число в кавычках, если оно является действительным целым числом.
Hart CO
29
Есть удобный инструмент, который экономит много времени на
Не размещайте конфиденциальные данные в Интернете. У вас нет возможности узнать, что происходит с данными, которые вы отправляете в веб-приложение. Некоторые из этих инструментов хранят ваши данные и делают их общедоступными
GabiM
28
Вы можете создать соответствующую таблицу через интерфейс Management Studio и вставить данные в таблицу, как показано ниже. Это может занять некоторое время, в зависимости от объема данных, но это очень удобно.
Удобно. Я вижу, что для столбца IDENTITY в буфере копирования должен быть столбец, даже если данные в нем будут игнорироваться, поскольку значения генерируются автоматически при вставке строк.
fortboise
Вы можете сделать свой столбец IDENTITY последним в списке столбцов, и тогда вообще не будет необходимости в дополнительном столбце.
Андрей Морозов
1
если вы не укажете значения IDENTITY на листе Excel; вы можете изменить и повторно запустить sql-скрипт редактирования 200 верхних строк, удалив столбец IDENTITY. Поэтому, когда вы копируете и вставляете значения без IDENTITY; этот метод будет работать.
aozan88
Это не работает для полей даты и времени в Excel для всех, кто сталкивается с проблемой. Данные datetime по какой-то причине преобразуются в "двоичные" данные на стороне SQL.
Кевин Васько
1
@condiosluzverde Я бы посоветовал вам опубликовать свой ответ. В случае редактирования этого ответа ваши изменения, вероятно, будут отклонены модераторами сообщества.
Андрей Морозов
16
Вы можете использовать следующий оператор Excel:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2,"'","\'")&"','"&SUBSTITUTE(B2,"'","\'")&"','"&SUBSTITUTE(C2,"'","\'")&"', "&D2&");"
Это улучшает ответ Hart CO, поскольку он учитывает имена столбцов и избавляется от ошибок компиляции из-за кавычек в столбце. Последний столбец представляет собой пример столбца с числовым значением без кавычек.
MS SQL, вы можете использовать мастер импорта SSMS для импорта файла Excel.
Hart CO
1
Чтобы добавить сведения в @HartCO - Чтобы перейти к мастеру импорта SSMS, щелкните правой кнопкой мыши базу данных, наведите указатель мыши на задачи, нажмите «Импортировать данные ...» в нижней части контекстного меню. Следуйте инструкциям мастера.
qxotk
2
Вы можете использовать VB, чтобы написать что-то, что будет выводиться в файл построчно, добавляя соответствующие операторы sql к вашим данным. Я делал это раньше.
Он может принимать значения, разделенные табуляцией, и генерировать сценарий INSERT. Просто скопируйте и вставьте и в параметрах шага 2 установите флажок «Первая строка - это имена столбцов».
Затем прокрутите вниз и шаге 3 введите имя своей таблицы в поле «Schema.Table or View Name:»
Обратите внимание на флажки для удаления и создания таблицы и убедитесь, что вы проверили созданный сценарий перед его запуском.
Это самый быстрый и надежный способ, который я нашел.
Этот запрос, который я создал для вставки данных файла Excel в базу данных. В этом идентификаторе и цене также есть числовые значения и поле даты. Этот запрос суммировал все типы, которые мне нужны. Он также может быть полезен вам.
="insert into product (product_id,name,date,price) values("&A1&",'"&B1&"','"&C1&"',"&D1&");"
Id Name Date price
7 Product 72017-01-0515:28:372008 Product 82017-01-0515:28:37409 Product 92017-01-0515:32:3150010 Product 102017-01-0515:32:313011 Product 112017-01-0515:32:319912 Product 122017-01-0515:32:3125
Вы можете использовать приведенный ниже метод C # для создания сценариев вставки с помощью листа Excel, просто вам нужно импортировать пакет OfficeOpenXml из диспетчера пакетов NuGet перед выполнением метода.
public string GenerateSQLInsertScripts(){
var outputQuery = new StringBuilder();
var tableName ="Your Table Name";if(file!=null){
var filePath =@"D:\FileName.xsls";using(OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath))){
var myWorksheet = xlPackage.Workbook.Worksheets.First();//select the first sheet here
var totalRows = myWorksheet.Dimension.End.Row;
var totalColumns = myWorksheet.Dimension.End.Column;
var columns = new StringBuilder();//this is your columns
var columnRows = myWorksheet.Cells[1,1,1, totalColumns].Select(c => c.Value ==null? string.Empty : c.Value.ToString());
columns.Append("INSERT INTO["+ tableName +"] (");
foreach (var colrow in columnRows){
columns.Append("[");
columns.Append(colrow);
columns.Append("]");
columns.Append(",");}
columns.Length--;
columns.Append(") VALUES (");for(int rowNum =2; rowNum <= totalRows; rowNum++)//selet starting row here
{
var dataRows = myWorksheet.Cells[rowNum,1, rowNum, totalColumns].Select(c => c.Value ==null? string.Empty : c.Value.ToString());
var finalQuery = new StringBuilder();
finalQuery.Append(columns);
foreach (var dataRow in dataRows){
finalQuery.Append("'");
finalQuery.Append(dataRow);
finalQuery.Append("'");
finalQuery.Append(",");}
finalQuery.Length--;
finalQuery.Append(");");
outputQuery.Append(finalQuery);}}}return outputQuery.ToString();}
Мне приходилось часто создавать сценарии SQL, добавлять их в систему управления версиями и отправлять их администратору баз данных. Я использовал это приложение ExcelIntoSQL из магазина Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM.
Оно создает полный сценарий с «СОЗДАТЬ ТАБЛИЦУ» и ВСТАВКИ.
У меня есть надежный способ генерировать SQL-вставки, и вы можете изменять частичные параметры при обработке. Это очень помогает мне в моей работе, например, копирование сотен данных в базу данных с несовместимой структурой и количеством полей.
IntellIJ DataGrip - мощный инструмент, который я использую. DG может получать данные из офиса WPS или MS Excel по столбцу или строке. после копирования DG может экспортировать данные в виде вставок SQL .
insert
иupdate
прямо здесь ☺Ответы:
Я думаю, что импорт с использованием одного из упомянутых методов идеален, если это действительно большой файл, но вы можете использовать Excel для создания операторов вставки:
В MS SQL вы можете использовать:
Отказаться от отображения всех комментариев "затронуты 1 строка". И если вы делаете много строк и выдает ошибки, время от времени помещайте GO между операторами
источник
=CONCATENATE()
но использование&
знака улучшает читаемость!&
когдаCONCATENATE()
некоторое время назад натолкнулся на ограничение параметра , это не обычная проблема, теперь, когда ограничение составляет 255 параметров, но я никогда не думаю о возврате.Есть удобный инструмент, который экономит много времени на
http://tools.perceptus.ca/text-wiz.php?ops=7
Вам просто нужно ввести имя таблицы, имена полей и данные - разделить табуляцию и нажать Go!
источник
Вы можете создать соответствующую таблицу через интерфейс Management Studio и вставить данные в таблицу, как показано ниже. Это может занять некоторое время, в зависимости от объема данных, но это очень удобно.
источник
Вы можете использовать следующий оператор Excel:
Это улучшает ответ Hart CO, поскольку он учитывает имена столбцов и избавляется от ошибок компиляции из-за кавычек в столбце. Последний столбец представляет собой пример столбца с числовым значением без кавычек.
источник
В зависимости от базы данных вы можете экспортировать в CSV, а затем использовать метод импорта.
MySQL - http://dev.mysql.com/doc/refman/5.1/en/load-data.html
PostgreSQL - http://www.postgresql.org/docs/8.2/static/sql-copy.html
источник
Вы можете использовать VB, чтобы написать что-то, что будет выводиться в файл построчно, добавляя соответствующие операторы sql к вашим данным. Я делал это раньше.
источник
Вот еще один инструмент, который очень хорошо работает ...
http://www.convertcsv.com/csv-to-sql.htm
Он может принимать значения, разделенные табуляцией, и генерировать сценарий INSERT. Просто скопируйте и вставьте и в параметрах шага 2 установите флажок «Первая строка - это имена столбцов».
Затем прокрутите вниз и шаге 3 введите имя своей таблицы в поле «Schema.Table or View Name:»
Обратите внимание на флажки для удаления и создания таблицы и убедитесь, что вы проверили созданный сценарий перед его запуском.
Это самый быстрый и надежный способ, который я нашел.
источник
Используйте
ConvertFrom-ExcelToSQLInsert
из ImportExcel в галерее PowerShellисточник
Вот ссылка на онлайн-автомат для преобразования файлов CSV в операторы SQL Insert Into:
CSV-to-SQL
источник
Этот запрос, который я создал для вставки данных файла Excel в базу данных. В этом идентификаторе и цене также есть числовые значения и поле даты. Этот запрос суммировал все типы, которые мне нужны. Он также может быть полезен вам.
источник
Вы можете использовать приведенный ниже метод C # для создания сценариев вставки с помощью листа Excel, просто вам нужно импортировать пакет OfficeOpenXml из диспетчера пакетов NuGet перед выполнением метода.
источник
Мне приходилось часто создавать сценарии SQL, добавлять их в систему управления версиями и отправлять их администратору баз данных. Я использовал это приложение ExcelIntoSQL из магазина Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM. Оно создает полный сценарий с «СОЗДАТЬ ТАБЛИЦУ» и ВСТАВКИ.
источник
У меня есть надежный способ генерировать SQL-вставки, и вы можете изменять частичные параметры при обработке. Это очень помогает мне в моей работе, например, копирование сотен данных в базу данных с несовместимой структурой и количеством полей. IntellIJ DataGrip - мощный инструмент, который я использую. DG может получать данные из офиса WPS или MS Excel по столбцу или строке. после копирования DG может экспортировать данные в виде вставок SQL .
источник