Yo tengo SQL Server 2008
SQL Server Management Studio.
Necesito seleccionar datos Table1
en database1. Luego tengo que editar algunos valores en los resultados y insert values into Table1
en database2.
O déjame decirlo de otra manera.
¿Cómo puedo convertir los datos de una tabla en insert script
.
sql
sql-server
sql-server-2008
ssms
Capitán Comic
fuente
fuente
Respuestas:
El paquete de herramientas SSMS (que es GRATUITO como en la cerveza) tiene una variedad de excelentes características, incluida la generación de declaraciones INSERT a partir de tablas.
Actualización: para SQL Server Management Studio 2012 (y versiones posteriores), SSMS Toolpack ya no es gratuito, pero requiere una tarifa de licencia modesta.
fuente
Aquí hay otro método, que puede ser más fácil que instalar complementos o herramientas externas en algunas situaciones:
select [whatever you need]
INTO temp.table_name
from [... etc ...]
temp.table_name
en la pantalla "Elegir objetos", haga clic en Siguiente.INSERT
declaraciones resultantes aparecen en una nueva ventana de consulta.[temp.table_name]
a[your_table_name]
.drop table [temp.table_name]
.fuente
temp
aquí se refiere a cualquier esquema al que tenga acceso. Puede crear uno (create schema temp
) y luego eliminarlo cuando haya terminado, o (mejor) simplemente usar cualquier esquema en el que esté trabajando actualmente.En SSMS:
Haga clic derecho en la base de datos> Tareas> Generar scripts
próximo
Seleccione "Seleccionar objetos de base de datos específicos" y marque la tabla que desea programar, Siguiente
Haga clic
Advanced >
en la lista de opciones, desplácese hasta la parte inferior y busque "Tipos de datos para escribir" y cámbielo a "Solo datos"> Aceptar.Seleccione "Guardar en una nueva ventana de consulta"> Siguiente> Siguiente> Finalizar
¡Las 180 filas ahora están escritas como 180 declaraciones de inserción!
fuente
Método nativo :
por ejemplo si tienes mesa
Puedes hacerlo:
fuente
1- Explicación de guiones
A) La sintaxis para insertar datos en la tabla es la siguiente
C) Para obtener los datos anteriores de la tabla existente, tenemos que escribir la consulta de selección de tal manera que la salida tenga la forma de los scripts anteriores
D) Luego, finalmente he concatenado la variable anterior para crear el script final que generará el script de inserción en la ejecución
MI)
F) Y finalmente ejecutó la consulta anterior
EXECUTE(TEXT)
G) la
QUOTENAME()
función se usa para envolver los datos de la columna dentro de la citaH)
ISNULL
se usa porque si alguna fila tieneNULL
datos para cualquier columna, la consulta falla y devuelve,NULL
por eso para evitar que haya usadoISNULL
I) Y creé el sp
sp_generate_insertscripts
para el mismo1- Solo ingresa el nombre de la tabla para la que quieras
insert script
2- Condición de filtro si quieres resultados específicos
fuente
Es posible hacerlo a través de Visual Studio SQL Server Object Explorer.
Puede hacer clic en "Ver datos" en el menú contextual para la tabla necesaria, filtrar los resultados y guardar el resultado como secuencia de comandos.
fuente
Usando Visual Studio, haga lo siguiente
Cree un proyecto de tipo SQL Server -> Proyecto de base de datos de SQL Server
abra el explorador del servidor SQL CTL- \, CTL-S
agregue un servidor SQL haciendo clic derecho en el icono del servidor SQL. Selcet AÑADIR NUEVO SERVIDOR
navega hasta la tabla que te interesa
clic derecho -> VER DATOS
Haga clic en la celda superior izquierda para resaltar todo (ctl-A no parece funcionar)
Clic derecho -> SCript
Esto es fabuloso. He probado todo lo mencionado anteriormente a lo largo de los años. Sé que hay una herramienta que hará esto y mucho más, no puedo pensar en su nombre. Pero es muy caro.
Buena suerte. Me acabo de dar cuenta de esto. No lo he probado extensamente con campos de texto, etc., pero parece que te lleva muy lejos por el camino.
Greg
fuente
Cree una tabla separada usando la instrucción into Por ejemplo
Seleccione * en Test_123 de [dbo]. [Empleado] donde Nombre como '% Test%'
Vaya a la base de datos Haga clic derecho en la base de datos Haga clic en Generar script Seleccione su tabla Seleccione la opción avanzada y seleccione el atributo "Sólo datos" Seleccione el archivo "abrir en una nueva consulta"
SQL generará un script para usted
fuente
Puede elegir la opción 'Resultado a archivo' en SSMS y exportar su resultado seleccionado a un archivo y hacer sus cambios en el archivo de resultados y, finalmente, utilizando BCP - Copia masiva que puede insertar en la tabla 1 en la base de datos 2.
Creo que para la inserción masiva tienes que convertir el archivo .rpt en el archivo .csv
Espero que te ayude.
fuente
Tuve un problema similar, pero necesitaba poder crear una declaración INSERT a partir de una consulta (con filtros, etc.)
Entonces creé el siguiente procedimiento:
Luego puede usarlo escribiendo el resultado de su consulta en una tabla temporal y ejecutando el procedimiento:
Nota: Este procedimiento solo convierte los valores en una cadena que puede hacer que los datos se vean un poco diferentes. Con DATETIME, por ejemplo, se perderán los segundos.
fuente
Esta es una solución más versátil (que puede hacer un poco más de lo que pide la pregunta) y se puede usar en una ventana de consulta sin tener que crear un nuevo proceso almacenado, útil en bases de datos de producción, por ejemplo, donde no tiene acceso de escritura. .
Para utilizar el código, modifíquelo de acuerdo con los comentarios en línea que explican su uso. Luego, puede ejecutar esta consulta en una ventana de consulta e imprimirá las declaraciones INSERT que necesita.
fuente
Puede utilizar los paquetes de servicios de integración de Sql Server diseñados específicamente para la operación de importación y exportación .
VS tiene un paquete para desarrollar estos paquetes si su Sql Server está completamente instalado.
Servicios de integración en Business Intelligence Development Studio
fuente
Creo que también es posible con consultas ad hoc, puede exportar el resultado a un archivo de Excel y luego importar ese archivo a su objeto de tabla de datos o usarlo tal como está y luego importar el archivo de Excel a la segunda base de datos. Eche un vistazo a este enlace, esto puede ayudarlo. mucho.
http://vscontrols.blogspot.com/2010/09/import-and-export-excel-to-sql-server.html
fuente
Creé lo siguiente
procedure
:Entonces puedes usarlo de esa manera:
La salida sería algo así:
Si solo desea obtener un rango de filas, use el
@top
parámetro como se muestra a continuación:fuente
Si está utilizando Oracle (o configura la aplicación en SQL Server), Oracle SQL Developer lo hace por usted. elija 'descargar' para una tabla y siga las opciones (desmarque DDL si no desea que toda la tabla cree cosas).
fuente
Encontré este complemento SMSMS Boost , que es gratuito y hace exactamente esto, entre otras cosas. Puede hacer clic con el botón derecho en los resultados y seleccionar Datos de script como.
fuente
Puede utilizar este Q2C.SSMSPlugin , que es gratuito y de código abierto. Puede hacer clic derecho y seleccionar "Ejecutar consulta para comando ... -> Consulta para insertar ...". Disfrutar)
fuente
Puede utilizar una
INSERT INTO SELECT
declaración para insertar los resultados de una consulta de selección en una tabla. http://www.w3schools.com/sql/sql_insert_into_select.aspEjemplo:
fuente