none
Comprobar si una columna es de un tipo en concreto RRS feed

  • Pregunta

  • Buenas , mediante esta sentencia sql compruebo si existe el campo numeroDiametro de la tabla rxCLi y sino existe lo crea.
    A mi lo que me gustaria hacer es si existe el campo numeroDiametro de la tabla rxCli y NO ES DEL TIPO varchar , que lo transforme.

    Este problema lo tengo porque tengo un software donde se creó un campo en la BD del tipo "int" y ahora se han dado cuenta que debe ser de tipo "varchar" y me gustaria poder pasar esta SQL sin perder los datos de la tabla.

    IF not exists
    (
    SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'numeroDiametro' AND TABLE_NAME = 'rxCli'
    )
    BEGIN
      ALTER TABLE rxcli ADD numeroDiametro varchar(50)
    END

    Gracias

    viernes, 10 de febrero de 2017 16:51

Respuestas

  • golfgti6,

    Intenta hacer lo siguiente:

    IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS 
    	   WHERE TABLE_NAME = 'rxcli' AND COLUMN_NAME = 'numeroDiametro')
    BEGIN
        IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS 
    	   WHERE TABLE_NAME='rxcli' AND COLUMN_NAME='numeroDiametro' AND DATA_TYPE='int')
        BEGIN
    	   ALTER TABLE rxcli ALTER COLUMN numeroDiametro varchar(50)
        END
    END
    ELSE
    BEGIN
        ALTER TABLE rxcli ADD numeroDiametro varchar(50)
    END
    GO



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 10 de febrero de 2017 17:19