Creo que importar usando uno de los métodos mencionados es ideal si realmente es un archivo grande, pero puede usar Excel para crear declaraciones de inserción:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
En MS SQL puede utilizar:
SET NOCOUNT ON
Dejar de mostrar todos los comentarios de "1 fila afectada". Y si está haciendo muchas filas y se produce un error, coloque un GO entre las declaraciones de vez en cuando
¡Estaba usando, =CONCATENATE()pero usar el &letrero conduce a una legibilidad mucho mejor!
mastazi
1
@mastazi ¡De acuerdo! Cambié a &cuando me topé con el límite de parámetros hace CONCATENATE()un tiempo, ese no es un problema común ahora que el límite es de 255 parámetros, pero nunca pienso en revertir.
Hart CO
1
CONCATENATE () es el camino a seguir. Simplemente haga clic en el icono de fx en la barra de fórmulas para ver lo que ha ingresado. Es mucho más limpio que usar y firmar. Por supuesto, usar & sign es genial, pero en algún momento cuando tenga comillas dobles o comillas simples, eso le hará contar para siempre lo que falta.
ian0411
1
No funciona cuando hay comillas en las celdas. Verifique mi respuesta para obtener una versión corregida.
Simon Baars
2
@PreshanPradeepa Puede usar la misma sintaxis, a SQL Server no le importa si el número entero está entre comillas siempre que sea un número entero válido.
Hart CO
29
Hay una herramienta útil que ahorra mucho tiempo en
No publique sus datos confidenciales en la web. No tiene forma de saber qué sucede con los datos que envía a la aplicación web. Algunas de estas herramientas almacenan sus datos y los ponen a disposición del público
GabiM
28
Puede crear una tabla adecuada a través de la interfaz de Management Studio e insertar datos en la tabla como se muestra a continuación. Puede llevar algún tiempo dependiendo de la cantidad de datos, pero es muy útil.
Práctico. Veo que con una columna de IDENTIDAD, el búfer de copia debe tener la columna, aunque los datos que contiene se ignorarán ya que los valores se generan automáticamente a medida que se insertan las filas.
fortboise
Puede hacer que su columna IDENTIDAD sea la última en la lista de columnas y luego no sería necesario tener una columna adicional en absoluto.
Andrey Morozov
1
si no especifica los valores de IDENTIDAD en la hoja de Excel; puede cambiar y volver a ejecutar el script sql de edición de las 200 filas superiores eliminando la columna IDENTIDAD. Entonces, cuando copia y pega los valores sin IDENTIDAD; este método funcionará.
aozan88
Esto está roto para los campos de fecha y hora en Excel para cualquier otra persona que tenga el problema. Los datos de fecha y hora se convierten en datos "binarios" en el lado SQL por alguna razón.
Kevin Vasko
1
@condiosluzverde Te aconsejo que publiques tu propia respuesta. En caso de editar esta respuesta, los moderadores de la comunidad probablemente rechazarán sus cambios.
Andrey Morozov
16
Puede utilizar la siguiente declaración de Excel:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2,"'","\'")&"','"&SUBSTITUTE(B2,"'","\'")&"','"&SUBSTITUTE(C2,"'","\'")&"', "&D2&");"
Esto es mejor que la respuesta de Hart CO, ya que tiene en cuenta los nombres de las columnas y elimina los errores de compilación debidos a las comillas en la columna. La última columna es un ejemplo de una columna de valor numérico, sin comillas.
MS SQL, puede utilizar el asistente de importación de SSMS para importar un archivo de Excel.
Hart CO
1
Para agregar detalles a @HartCO: para navegar al Asistente de importación SSMS, haga clic con el botón derecho en la base de datos, coloque el cursor sobre las tareas, haga clic en "Importar datos ..." cerca de la parte inferior del menú contextual. Siga los pasos del asistente.
qxotk
2
Puede usar VB para escribir algo que saldrá a un archivo fila por fila agregando las declaraciones SQL apropiadas alrededor de sus datos. He hecho esto antes.
Puede tomar valores separados por tabulaciones y generar un script INSERT. Simplemente copie y pegue y en las opciones del paso 2 marque la casilla "La primera fila son los nombres de las columnas"
Luego, desplácese hacia abajo y, en el paso 3, ingrese el nombre de su tabla en el cuadro "Esquema.Tabla o nombre de vista:"
Preste atención también a las casillas de verificación de eliminar y crear tabla, y asegúrese de examinar el script generado antes de ejecutarlo.
Esta es la forma más rápida y confiable que he encontrado.
Esta consulta la he generado para insertar los datos del archivo de Excel en la base de datos. En esta identificación y precio también se encuentran los valores numéricos y el campo de fecha. Esta consulta resumió todo el tipo que necesito.También puede ser útil para usted.
="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
Puede usar el método C # siguiente para generar los scripts de inserción usando la hoja de Excel, solo necesita importar el paquete OfficeOpenXml desde NuGet Package Manager antes de ejecutar el método.
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();}
Tuve que hacer scripts SQL a menudo y agregarlos al control de código fuente y enviarlos a DBA. Usé esta aplicación ExcelIntoSQL de la tienda de Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM
Crea un script completo con "CREATE TABLE" e INSERTOS.
Tengo una forma confiable de generar inserciones SQL batly, y puedes modificar parámetros parciales en el procesamiento. Me ayuda mucho en mi trabajo, por ejemplo, copiar cientos de datos a una base de datos con estructura incompatible y conteo de campos.
IntellIJ DataGrip , la poderosa herramienta que utilizo. DG puede recibir datos de la oficina de WPS o MS Excel por columna o línea. después de copiar, DG puede exportar datos como inserciones SQL .
insert
yupdate
aquí mismo ☺Respuestas:
Creo que importar usando uno de los métodos mencionados es ideal si realmente es un archivo grande, pero puede usar Excel para crear declaraciones de inserción:
En MS SQL puede utilizar:
Dejar de mostrar todos los comentarios de "1 fila afectada". Y si está haciendo muchas filas y se produce un error, coloque un GO entre las declaraciones de vez en cuando
fuente
=CONCATENATE()
pero usar el&
letrero conduce a una legibilidad mucho mejor!&
cuando me topé con el límite de parámetros haceCONCATENATE()
un tiempo, ese no es un problema común ahora que el límite es de 255 parámetros, pero nunca pienso en revertir.Hay una herramienta útil que ahorra mucho tiempo en
http://tools.perceptus.ca/text-wiz.php?ops=7
Solo tiene que ingresar el nombre de la tabla, los nombres de los campos y los datos, separados por pestañas y presionar Ir.
fuente
Puede crear una tabla adecuada a través de la interfaz de Management Studio e insertar datos en la tabla como se muestra a continuación. Puede llevar algún tiempo dependiendo de la cantidad de datos, pero es muy útil.
fuente
Puede utilizar la siguiente declaración de Excel:
Esto es mejor que la respuesta de Hart CO, ya que tiene en cuenta los nombres de las columnas y elimina los errores de compilación debidos a las comillas en la columna. La última columna es un ejemplo de una columna de valor numérico, sin comillas.
fuente
Dependiendo de la base de datos, puede exportar a CSV y luego usar un método de importación.
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
fuente
Puede usar VB para escribir algo que saldrá a un archivo fila por fila agregando las declaraciones SQL apropiadas alrededor de sus datos. He hecho esto antes.
fuente
Aquí hay otra herramienta que funciona muy bien ...
http://www.convertcsv.com/csv-to-sql.htm
Puede tomar valores separados por tabulaciones y generar un script INSERT. Simplemente copie y pegue y en las opciones del paso 2 marque la casilla "La primera fila son los nombres de las columnas"
Luego, desplácese hacia abajo y, en el paso 3, ingrese el nombre de su tabla en el cuadro "Esquema.Tabla o nombre de vista:"
Preste atención también a las casillas de verificación de eliminar y crear tabla, y asegúrese de examinar el script generado antes de ejecutarlo.
Esta es la forma más rápida y confiable que he encontrado.
fuente
Use el
ConvertFrom-ExcelToSQLInsert
de ImportExcel en la Galería de PowerShellfuente
Aquí hay un enlace a un automatizador en línea para convertir archivos CSV a declaraciones SQL Insert Into:
CSV a SQL
fuente
Esta consulta la he generado para insertar los datos del archivo de Excel en la base de datos. En esta identificación y precio también se encuentran los valores numéricos y el campo de fecha. Esta consulta resumió todo el tipo que necesito.También puede ser útil para usted.
fuente
Puede usar el método C # siguiente para generar los scripts de inserción usando la hoja de Excel, solo necesita importar el paquete OfficeOpenXml desde NuGet Package Manager antes de ejecutar el método.
fuente
Tuve que hacer scripts SQL a menudo y agregarlos al control de código fuente y enviarlos a DBA. Usé esta aplicación ExcelIntoSQL de la tienda de Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM Crea un script completo con "CREATE TABLE" e INSERTOS.
fuente
Tengo una forma confiable de generar inserciones SQL batly, y puedes modificar parámetros parciales en el procesamiento. Me ayuda mucho en mi trabajo, por ejemplo, copiar cientos de datos a una base de datos con estructura incompatible y conteo de campos. IntellIJ DataGrip , la poderosa herramienta que utilizo. DG puede recibir datos de la oficina de WPS o MS Excel por columna o línea. después de copiar, DG puede exportar datos como inserciones SQL .
fuente