Cómo transferir los datos de sql

Además de utilizar la INSERTAR y ACTUALIZAR declaraciones en SQL, se pueden agregar datos a una tabla o vista mediante el uso de la UNIR declaración. Usted puede UNIR datos de una tabla de origen o consulta en una tabla o vista de destino.

Video: Exportar Base de Datos de Access a Sql Server

los UNIR o bien puede insertar nuevas filas en la tabla de destino o actualizar filas existentes. UNIR es una manera conveniente de tomar los datos que ya existe en algún lugar de una base de datos y copiarlo a una nueva ubicación.

Por ejemplo, considere una base de datos de laboratorio veterinario. Supongamos que algunas personas en la mesa de los empleados son los vendedores que han tomado las órdenes, mientras que otros son empleados no-ventas o vendedores que todavía no han dado una orden. El año que acaba de concluir ha sido rentable, y que desea compartir parte de ese éxito con los empleados.

Usted decide dar un bono de $ 100 a todos los que han tenido al menos un orden y un bono de $ 50 a todos los demás. En primer lugar, se crea una tabla BONUS e insertar en él un registro para cada empleado que aparece al menos una vez en la tabla PEDIDOS, asignando cada registro un valor predeterminado bono de $ 100.

Luego, si desea utilizar el UNIR declaración para insertar nuevos registros para aquellos empleados que no han tomado las órdenes, dándoles $ 50 bonos. Aquí hay un código que construye y llena la tabla BONUS:

CREAR BONUS TABLA (EmployeeName CARÁCTER (30) PRIMARY KEY, Bonus NUMERICDEFAULT 100) -INSERT EN bonificación (EmployeeName) (SELECT EmployeeName FROM EMPLOYEE, ORDERSWHERE EMPLOYEE.EmployeeName = ORDERS.SalespersonGROUP POR EMPLOYEE.EmployeeName) -

Ahora puede consultar la tabla BONUS para ver lo que contiene:

* SELECT PRIMA -EmployeeName Bono ------------ ------------- Brynna Jones100Chris Bancroft 100Greg Bosser100Kyle Weeks100

Ahora, mediante la ejecución de una UNIR declaración, le puede dar $ 50 bonos con el resto de los empleados:

Combinar en BONUSUSING EMPLOYEEON (BONUS.EmployeeName = EMPLOYEE.EmployeeName) Si la alineación no ENTONCES INSERT (BONUS.EmployeeName, BONUS.bonus) VALORES (EMPLOYEE.EmployeeName, 50) -

Los registros de personas en la tabla EMPLOYEE que no coincide con los registros de las personas que ya están en la tabla BONUS ahora se insertan en la tabla BONUS. Ahora una consulta de la tabla BONUS da el siguiente resultado:

* SELECT PRIMA -EmployeeName Bono -------------- ----------- Brynna Jones100Chris Bancroft 100Greg Bosser100Kyle Weeks100Neth Doze 50Matt Bak 50Sam Saylor50Nic Foster50

Los cuatro primeros registros, que fueron creadas con el INSERTAR declaración, están en orden alfabético por el nombre del empleado. El resto de los registros, añadido por el UNIR declaración, aparecer en cualquier orden en que se enumeran en la tabla EMPLOYEE.

los UNIR declaración es una adición relativamente nueva a SQL y, sin embargo, no puede ser apoyada por algunos productos DBMS. Aún más reciente es una capacidad adicional de UNIR añadido en SQL: 2011, paradójicamente, lo que le permite eliminar registros con una UNIR declaración.

Supongamos que, después de hacer el INSERTAR, decide que no quiere dar bonificaciones a las personas que han tomado al menos un pedido después de todo, sino que usted desea dar un bono de $ 50 a todos los demás. Puede eliminar las bonificaciones de ventas y añadir los bonos no-ventas con la siguiente UNIR declaración:

Combinar en BONUSUSING EMPLOYEEON (BONUS.EmployeeName = EMPLOYEE.EmployeeName) cuando se combina ENTONCES DELETEWHEN NO coinciden, inserto (BONUS.EmployeeName, BONUS.bonus) VALORES (EMPLOYEE.EmployeeName, 50) -

El resultado es

Video: Migrar Base de Datos MYSQL a SQL SERVER 2012

* SELECT BONUS-EmployeeName Bono -------------- ----------- Neth Doze 50Matt Bak 50Sam Saylor50Nic Foster50
Artículos Relacionados