MERGE en SQL Server - #28 Microsoft SQL Server desde cero

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 53

  • @spartanzarazua117
    @spartanzarazua117 2 роки тому +3

    Muchas gracias tu video me sirvió de mucho al inicio se veía muy complicado pero explicandolo te das cuenta que en verdad es sencillo.

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      Hola bin, estos mensajes me motivan bastante, saludos y te deseo buenos scripts 🔝

  • @randolfojolongutierrez5311
    @randolfojolongutierrez5311 3 роки тому +1

    Buenas noches, muy muy interesante... Gracias y saludos de Guatemala

  • @eduardorivera4720
    @eduardorivera4720 Рік тому

    Me resulta muy interesante el video, no se casi nada de SQL pero la verdad me ha dejado sorprendido lo que puede hacer, me funciona perfecto cuando son pocos datos, sin embargo hay dos problemas que tengo.
    1.- mis datos origen como los datos que quiero comparar son de 1 millón
    2.- algunos de mis datos que deseo comparar se duplican con mis datos origen, ya que en esencia lo que necesito es actualizar cierta información y cuando no exista me inserte un nuevo registro.

    • @eduardorivera4720
      @eduardorivera4720 Рік тому

      Este es el error que me arroja, espero me puedan orientar saludos.
      La instrucción MERGE intentó ACTUALIZAR o ELIMINAR la misma fila más de una vez. Esto sucede cuando una fila de destino coincide con más de una fila de origen. Una instrucción MERGE no puede ACTUALIZAR/ELIMINAR la misma fila de la tabla de destino varias veces. Refine la cláusula ON para garantizar que una fila de destino coincida como máximo con una fila de origen, o use la cláusula GROUP BY para agrupar las filas de origen.

    • @mundobinariobyaxel
      @mundobinariobyaxel  Рік тому

      Hola binario, si ya solucionaste este problema, me cuentas como, si no, podrías utilizar previo a este un Common table expression para discriminar datos repetidos, y posterior a eso realizar el MERGE, espero que me haya dado a entender.

  • @albertokebg
    @albertokebg 3 роки тому +2

    Muchas gracias, muy bien explicado! El problemita del 'spelling' se puede solucionar con la función de IntelliSense. Se ejecuta con CTRL+SHIFT+R

    • @mundobinariobyaxel
      @mundobinariobyaxel  3 роки тому +1

      Hola binario, graciass y bienvenido, he probado eso que dices, pero también he notado que es porque dejo la sesión abierta y a veces se va la red y se pierde, se arregla hasta que cierro todo.

  • @juanalfredogutierrez8663
    @juanalfredogutierrez8663 Рік тому

    Gracias máster
    Se suma un nuevo suscriptor.

    • @mundobinariobyaxel
      @mundobinariobyaxel  Рік тому

      Bienvenido al canal 🚀, espero estar leyéndote por aquí, si llegas a tener alguna duda y si puedo responderla lo haré, saludos 😎

  • @oscararmandocisnerosruvalc8503
    @oscararmandocisnerosruvalc8503 6 місяців тому

    Increíble vídeo , el ejemplo es como cuando en la tabla máster un estudiante esta registrado pero luego se da de baja en la tabla de por ejemplo un campus , así sería una buena forma de actualizar la tabla matriz

    • @mundobinariobyaxel
      @mundobinariobyaxel  6 місяців тому

      exactamente, mejor no lo pudiste describir 🚀🚀

    • @oscararmandocisnerosruvalc8503
      @oscararmandocisnerosruvalc8503 6 місяців тому

      @@mundobinariobyaxel aún los debes uno de ssis , data factory o por que no spark hahahaha.
      Saludos

  • @samuelfranciscogarcia1440
    @samuelfranciscogarcia1440 3 роки тому +1

    Me encantó muchísimo. Mil gracias por tu enseñanza. 🌧⛈💨🥂🧑‍🍼👼👷🇲🇽

  • @luisgabrielmatatencio6805
    @luisgabrielmatatencio6805 Місяць тому

    Gracias por el video, me funciono mucho

    • @mundobinariobyaxel
      @mundobinariobyaxel  Місяць тому +1

      ¡De nada bin 👾! Me alegra mucho saber que el video te fue útil. ¡Gracias por tu apoyo! 🚀

  • @spartan9771
    @spartan9771 Рік тому

    Gracias master , muy practica como siempre. ;)

  • @joelruiz1373
    @joelruiz1373 Рік тому

    Hola...!! En la opción de Edit, encuentras IntelliSense y ahí puedes refrescar la Memoria Cache, para solucionar el inconveniente de las marcas rojas.
    Gracias por el curso.

  • @franciscorossi5633
    @franciscorossi5633 2 роки тому

    Excelente explicación, muchas gracias! Nuevo suscriptor por acá.

  • @juanpablorochasantelices1694
    @juanpablorochasantelices1694 2 роки тому

    Excelente contenido.

  • @didimoescobar2247
    @didimoescobar2247 Рік тому

    Hola, exelente video y explicación !!!!, deseo saber de que forma es posible ejecutar este MERGE en sql server sin la necesidad de ejecutarlo manualmente, se puede diseñar un job por ejemplo en sql ???

    • @mundobinariobyaxel
      @mundobinariobyaxel  Рік тому +1

      Hola, se puede utilizar desde un JOB, pero personalmente lo implemento desde un stored procedure.
      ua-cam.com/video/1IBLXDXRAAs/v-deo.htmlsi=vbO5ik1nEiubtYTG
      ua-cam.com/video/5_KPpmh1gKo/v-deo.htmlsi=kNZD72226yutBKXq

  • @oscararmandocisnerosruvalc8503
    @oscararmandocisnerosruvalc8503 6 місяців тому

    Máster debería hacer una playlist de SSIS y luego llevarlo a data factory !!!. Saludos

    • @mundobinariobyaxel
      @mundobinariobyaxel  6 місяців тому

      uffff estaría increíble, lo voy a considerar, te mando un abrazo.

    • @oscararmandocisnerosruvalc8503
      @oscararmandocisnerosruvalc8503 6 місяців тому

      @@mundobinariobyaxel un abrazo y gracias por tan excelente contenido y de tan Buena calidad !!! .
      Usted me have ver que no todo en UA-cam es Mal contenido

  • @fredyaguirre9986
    @fredyaguirre9986 Рік тому

    Muchas gracias buen video, tengo una pregunta si una tabla que tenga muchas columnas hay forma de parametrizar en los update he insert que tome todas todas las columnas sin especificarlas.Gracias

    • @mundobinariobyaxel
      @mundobinariobyaxel  Рік тому

      Hola binario, no he intentado eso, yo creo que si se debe especificar, al final por buena practica recuerda que al hacer un INSERT debes especificar las columnas, aunque si no lo haces, el INSERT también lo seguirá haciendo bien, pero como recomendación, siempre hay que ser lo más organizados posibles.
      Aquí te dejo un blog que hable de MERGE :)
      www.sqlshack.com/understanding-the-sql-merge-statement/

  • @josephdanielgironherrera9080
    @josephdanielgironherrera9080 2 роки тому

    Muchas gracias hermano, todo muy claro. ¿podrias recomendarme alguna pagina o archivo para practicar con ejercicios?. Saludos.

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      De nada bin, si quieres practicar aquí te dejo una página muy recomendada. sqliteonline.com/

  • @CarlosGutierrez-xi2ob
    @CarlosGutierrez-xi2ob 2 роки тому

    Excelente!! tengo una duda ya que al parecer tengo duplicados al momento de hacer el match, se debe realizar un group by? y si es así como seria la solución?

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      Hola binario, intenta con DISTINCT y sino con la idea que traes del group by, pero con el DISTINCT debería quedar

  • @5516472552
    @5516472552 3 роки тому

    Buenas tardes, super interesante el tema, pero subiendo el grado de dificultad un poco, se podría hacer un merge con un listado de tablas ?

    • @mundobinariobyaxel
      @mundobinariobyaxel  3 роки тому +1

      Hola, bienvenida al canal, se me hace muy interesante tu pregunta y quiero entender lo del listado de tablas, es decir ¿hacer INSERT a varias tablas dentro del mismo merge?

    • @5516472552
      @5516472552 3 роки тому

      @@mundobinariobyaxel insert o Update pero es correcto a varias tablas en diferentes bases de datos todo dentro el mismo merge

    • @mundobinariobyaxel
      @mundobinariobyaxel  3 роки тому

      @@5516472552 Ohhh, no se podría ya que el merge solo soporta un source y un target pero si me cuentas un ejemplo donde se podría aplicar, me pondrías a pensar en la mejor solución

  • @felixpaniagua6018
    @felixpaniagua6018 2 роки тому

    Una pregunta: Qué pasaría si tengo en mi tabla source un valor que quiero asignar a la tabla target, pero resulta que hace un match en ambos y al actualizar la tabla source le pasa casi todos los valores diferentes a la tabla target, exceptuando el id, pero resulta que yo en realidad no quiero que se elimine la información en la tabla target o se modifique para que se pierda? Para entender más mi pregunta te pondría este caso. Digamos que en la tabla source yo tengo id=1 y nombre = "Félix" y en la target yo tengo id=1 y nombre = "María", pues en este caso como ambas tablas se relacionan por el id y resulta que hacen un match, entonces Félix reemplazaría a María y esta ya no estará en ninguna de las tablas perdiendo datos en el proceso. Será que debo de hacer en la conexión de ambas tablas con el keyword ON utilizar el nombre y no el id para que así en ese campo no me haga match e inserte a Félix en un registro nuevo? Espero tus respuestas con ansias.

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      Holaaa, muy buena duda, puedes colocar un WHERE [source].[name] [target].[name], me cuentas si funcionooo y disculpa por llegar con la respuesta hasta ahora.

    • @felixpaniagua6018
      @felixpaniagua6018 2 роки тому

      @@mundobinariobyaxel Si, esa duda la comprobé, pero muchas gracias de todos modos. Tu video fue muy útil para entenderlo. Y otra pregunta: Es necesario conocer este tipo de temas para que te den un trabajo como desarrollador, necesitas saber muchos de estos temas sql o lo puedes ir aprendiendo sobre la marcha una vez que consigues trabajo? Ya que sigo aprendiendo sql y sé casi la mayoría de sentencias sql que dan en los cursos en youtube, pero a veces veo muchas cosas nuevas más y me decepciono porque creía que sabía todo lo necesario.

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      @@felixpaniagua6018 No es necesario saber todas las sentencias, te puedo contar que llevo 6+ años trabajando con SQL y luego surge un escenario nuevo y es cuando aplico comando que jamás había utilizado, respondiendo es que puedes ir aprendiendo sobre la marcha, como es en casi todas las carreras, un abrazo

  • @felipem3804
    @felipem3804 Рік тому

    Tengo un problema, y que en entorno productivo, al ejecutarse el mismo sp ( dos merge consecutivos a distintas tablas) se genera deadlocks, el. Merge no permite usar unread commited ni with no lock, que opciones podria usar para evitar estos dead locks? Regresar a opersciones de update e insert?
    Gracias.... Colegas

    • @mundobinariobyaxel
      @mundobinariobyaxel  Рік тому

      Uffff eso no me ha sucedido, y no se me ocurre que podría ser, si de pronto ya lo solucionaste, me cuentas como fue porque no quiero quedarme con la duda

  • @DJosue2612
    @DJosue2612 2 роки тому

    No reconocía la tabla debido a que cuando se creo la tabla StudentC2 no se incluyo la palabra reservada GO para que SQLServer detecte un nuevo componente.

    • @mundobinariobyaxel
      @mundobinariobyaxel  2 роки тому

      Binario, entonces HOY he aprendido algo nuevo hoy de ti. Muchas gracias 👾

  • @Roberto-kz2oj
    @Roberto-kz2oj 7 місяців тому

    consulta.... porque son los corchetes???

    • @mundobinariobyaxel
      @mundobinariobyaxel  7 місяців тому

      Hola, yo lo hago porque ya es un hábito y buena practica, pero te dejo esta respuesta que se me hace aún más interesante. es.stackoverflow.com/questions/133007/cual-es-la-sintaxis-correcta-de-un-select-en-sql-server-alias

  • @randolfojolongutierrez5311
    @randolfojolongutierrez5311 3 роки тому +1

    4 vídeos que dicen "privados" no dejan verlos...

    • @mundobinariobyaxel
      @mundobinariobyaxel  3 роки тому +3

      Ohhh, son los que están programados para publicarse cada Jueves 🚀