none
Actualizar todos los campos con JSON_MODIFY RRS feed

  • Pregunta

  • Hey que tal!, les cuento que estoy intentando actualizar con JSON_MODIFY una serie de columnas que deben reemplazarse con  un mismo valor, pero no logro conseguirlo. Este es mi código:

    DECLARE @JSON NVARCHAR(MAX)
    SET @JSON = 
    N'{
    "A":1,
    "TMP": [    
        {"A":"VALUE1", "B": "VALUE2", "C": 1},
        {"A":"VALUE3", "B": "VALUE4", "C": 2},
        {"A":"VALUE5", "B": "VALUE6", "C": 3}]}
    '
    
    SET @JSON = JSON_MODIFY(@JSON, '$.TMP.A', 'JEJE')
    
    SELECT * FROM OPENJSON(@JSON, '$.TMP') WITH ( A NCHAR(10), B NCHAR(10), C INT )

    Debo reemplazar todas las columnas A con la palabra ejemplo "JEJE", ¿Como lo podría hacer?

    Gracias.

    jueves, 29 de diciembre de 2016 17:31

Respuestas

  • Gracias, lo que haré será grabar todos los datos a la tabla y luego actualizar con UPDATE a los valores que corresponden.
    • Marcado como respuesta MAXDELPHI viernes, 30 de diciembre de 2016 15:38
    viernes, 30 de diciembre de 2016 15:38

Todas las respuestas

  • no estoy seguro que se pueda (ni de lo contrario) modificar todos los valores de una vez, lo que se es que en ese apartado está el problema por el que no funciona tu ejemplo.

    Prueba este código y veras lo que quiero decir

     
    DECLARE @JSON NVARCHAR(MAX)
    SET @JSON = 
    N'{
    "A":1,
    "TMP": [    
        {"A":"VALUE1", "B": "VALUE2", "C": 1},
        {"A":"VALUE3", "B": "VALUE4", "C": 2},
        {"A":"VALUE5", "B": "VALUE6", "C": 3}]}
    '
    
    SET @JSON = JSON_MODIFY(@JSON, '$.TMP[0].A', 'JEJE')
    
    SELECT * FROM OPENJSON(@JSON, '$.TMP') WITH ( A NCHAR(10), B NCHAR(10), C INT )


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Marcado como respuesta MAXDELPHI viernes, 30 de diciembre de 2016 15:38
    • Desmarcado como respuesta MAXDELPHI viernes, 30 de diciembre de 2016 15:38
    viernes, 30 de diciembre de 2016 9:38
    Moderador
  • Gracias, lo que haré será grabar todos los datos a la tabla y luego actualizar con UPDATE a los valores que corresponden.
    • Marcado como respuesta MAXDELPHI viernes, 30 de diciembre de 2016 15:38
    viernes, 30 de diciembre de 2016 15:38