{"id":368,"date":"2017-09-19T21:50:18","date_gmt":"2017-09-19T21:50:18","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=368"},"modified":"2020-12-18T01:28:05","modified_gmt":"2020-12-18T01:28:05","slug":"merge","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=368","title":{"rendered":"Merge en SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"251\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_D.png\" alt=\"\" class=\"wp-image-1022\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_D.png 250w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_D-150x150.png 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><strong>Instrucci\u00f3n Merge<\/strong><\/h2>\n\n\n\n<p>Realiza instrucciones de inserci\u00f3n de registros, actualizaci\u00f3n o eliminaci\u00f3n de registros&nbsp;en una tabla de destino en la misma base de datos o en otra base de datos&nbsp;seg\u00fan los resultados de combinar los registros con una tabla de origen.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p style=\"font-size:22px\"><strong>Para m\u00e1s informaci\u00f3n:<\/strong><\/p>\n\n\n\n<p style=\"font-size:18px\"><a href=\"https:\/\/manualsqlserver.com\/?p=2321\" target=\"_blank\" rel=\"noreferrer noopener\">Merge con Select<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=2330\" target=\"_blank\" rel=\"noreferrer noopener\">Merge con Graph Tables<\/a><br><a href=\"https:\/\/manualsqlserver.com\/?p=2365\" target=\"_blank\" rel=\"noreferrer noopener\">OutPut en Merge <\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sintaxis<\/h3>\n\n\n\n<p><strong>La forma de usar Merge es la siguiente:<\/strong><\/p>\n\n\n\n<p>MERGE<br>[ TOP ( n ) [ PERCENT ] ]<br>[ INTO ] &lt;Tabla_Destino&gt; [ [ AS ] AliasTablaDestino ]<br>USING &lt;Tabla_Origen&gt; [ [ As ] AliasTablaOrigen]<br>ON &lt;Condici\u00f3nMergeComparaci\u00f3n&gt;<br>[ WHEN MATCHED [ AND &lt;Condici\u00f3n&gt; ]<br>THEN &lt;Isntrucci\u00f3n Si encuentra&gt; ] [ &#8230;n ]<br>[ WHEN NOT MATCHED [ BY TARGET ] [ AND &lt;Condici\u00f3n&gt; ]<br>THEN &lt;Instrucci\u00f3n Si NO Encuentra en Destino&gt; ]<br>[ WHEN NOT MATCHED BY SOURCE [ AND &lt;Condici\u00f3n&gt; ]<br>THEN &lt;Instrucci\u00f3n Si NO Encuentra en Origen&gt; ] [ &#8230;n ]<\/p>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo<\/h3>\n\n\n\n<p><strong>En este ejemplo, se tienen dos bases de datos cada una con una tabla de Productos.<\/strong><br><strong>La base de datos Planes, con la tabla ProductosPlanes y la base de datos Desarrollo con la tabla ProductosDesarrollo.<\/strong><\/p>\n\n\n\n<p><strong>Base de datos Planes<\/strong><br>create database Planes<br>go<br>use Planes<br>go<br>Create table ProductosPlanes<br>(<br>ProductosCodigo nchar(4),<br>ProductosDescripcion nvarchar(100),<br>ProductosPrecioUnitario Numeric(10,2),<br>ProductosStockActual Numeric(10,2),<br>constraint ProductosPk Primary key (ProductosCodigo)<br>)<br>go<\/p>\n\n\n\n<p><strong>Insertar registros en la tabla ProductosPlanes<\/strong><br>insert into ProductosPlanes values (&#8216;8856&#8242;,&#8217;L\u00e1mpara Personal&#8217;,25.4,100)<br>insert into ProductosPlanes values (&#8216;8636&#8242;,&#8217;Auriculares Deluxe&#8217;,98.4,20)<br>insert into ProductosPlanes values (&#8216;4685&#8242;,&#8217;Escritorio Gerencial&#8217;,525,6)<br>insert into ProductosPlanes values (&#8216;5780&#8242;,&#8217;Marco Foto&#8217;,20,80)<br>insert into ProductosPlanes values (&#8216;0665&#8242;,&#8217;Impresora HP&#8217;,65,15)<br>go<\/p>\n\n\n\n<p><strong>BASE DE DATOS DESARROLLO<\/strong><br>create database Desarrollo<br>go<br>use Desarrollo<br>go<br>Create table ProductosDesarrollo<br>(<br>ProductosCodigo nchar(4),<br>ProductosDescripcion nvarchar(100),<br>ProductosPrecioUnitario Numeric(10,2),<br>ProductosStockActual Numeric(10,2),<br>constraint ProductosPk Primary key (ProductosCodigo)<br>)<br>go<\/p>\n\n\n\n<p><strong>Insertar los registros en la tabla ProductosDesarrollo<\/strong><\/p>\n\n\n\n<p><strong>Note los cambios, se han insertado registros y las coincidencias o diferencias se notan en la siguientes figuras.<\/strong><\/p>\n\n\n\n<p>&#8212; Primer registro \u00abL\u00e1mpara Personal\u00bb con un valor del Stock de 80<br>&#8212; Segundo registro \u00abAuriculares Deluxe\u00bb con precio de 115<br>&#8212; Tercer y cuarto registros nuevos<br>&#8212; Quinto registro \u00abImpresora HP\u00bb tiene la descripci\u00f3n cambiada y nuevo Stock de 15 a 25<\/p>\n\n\n\n<p>insert into ProductosDesarrollo values (&#8216;8856&#8242;,&#8217;L\u00e1mpara Personal&#8217;,25.4,80)<br>insert into ProductosDesarrollo values (&#8216;8636&#8242;,&#8217;Auriculares Deluxe&#8217;,115,20)<br>insert into ProductosDesarrollo values (&#8216;9879&#8242;,&#8217;Switch Ethernet 993&#8217;,85,3)<br>insert into ProductosDesarrollo values (&#8216;4567&#8242;,&#8217;Memoria USB 16 GB&#8217;,50,10)<br>insert into ProductosDesarrollo values (&#8216;0665&#8242;,&#8217;Impresora HP Multifuncional&#8217;,65,25)<br>go<\/p>\n\n\n\n<p><strong>Antes del Merge<\/strong><br>select * from Planes.dbo.ProductosPlanes<br>select * from Desarrollo.dbo.ProductosDesarrollo<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_01.png\" alt=\"\" class=\"wp-image-1020\" width=\"790\" height=\"467\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_01.png 615w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_01-300x177.png 300w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure><\/div>\n\n\n\n<p><strong>Haciendo el Merge<\/strong><br><strong>La tabla Origen es Productos de la base de datos Desarrollo y la tabla Destino en Productos en la base de datos Planes<\/strong><\/p>\n\n\n\n<p>Merge into Planes.dbo.ProductosPlanes as TablaDestino<br>using Desarrollo.dbo.ProductosDesarrollo as TablaOrigen<br>on (TablaDestino.ProductosCodigo = TablaOrigen.ProductosCodigo)<br>when not matched then<br>insert values (TablaOrigen.ProductosCodigo, TablaOrigen.ProductosDescripcion,<br>TablaOrigen.ProductosPrecioUnitario, TablaOrigen.ProductosStockActual)<br>when matched then<br>update set ProductosDescripcion = TablaOrigen.ProductosDescripcion,<br>ProductosPrecioUnitario = TablaOrigen.ProductosPrecioUnitario,<br>ProductosStockActual = TablaOrigen.ProductosStockActual;<br>go<\/p>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p><strong>Visualizar los resultados<\/strong><br><strong>En la tabla destino ProductosPlanes se han insertados dos registros.<\/strong><br>select * from Planes.dbo.ProductosPlanes<br><strong>En la tabla origen de la base de datos Desarrollo los registros son los mismos.<\/strong><br>select * from Desarrollo.dbo.ProductosDesarrollo<br>go<br><script>&lt;br \/>      (adsbygoogle = window.adsbygoogle || []).push({});&lt;br \/> <\/script><\/p>\n\n\n\n<p><strong>La imagen muestra los resultados.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_02.png\" alt=\"\" class=\"wp-image-1021\" width=\"823\" height=\"540\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_02.png 664w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_Merge_02-300x197.png 300w\" sizes=\"auto, (max-width: 823px) 100vw, 823px\" \/><\/figure><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Instrucci\u00f3n Merge Realiza instrucciones de inserci\u00f3n de registros, actualizaci\u00f3n o eliminaci\u00f3n de registros&nbsp;en una tabla de destino en la misma base de datos o en otra base de datos&nbsp;seg\u00fan los resultados de combinar los registros con una tabla de origen.<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=368\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1022,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[271,8],"tags":[74,53],"class_list":["post-368","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-merge","category-programacion","tag-merge","tag-sqlserver","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=368"}],"version-history":[{"count":2,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/368\/revisions"}],"predecessor-version":[{"id":2382,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/368\/revisions\/2382"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1022"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}