none
Añadir columnas a la tabla con valor predeterminado de otras tablas. RRS feed

  • Pregunta

  • Solicitando de su sabiduria...

    Explico, tengo una tabla_A,

    Columnas ID, NAME, DATE...

    a la cual le añado 3 columnas...

    ALTER TABLE Tabla_A ADD

    llave10 VARCHAR(50) NULL,
    llave20 VARCHAR(50) NULL,
    tipo FLOAT  NULL;

    Al añadir dichas columnas puedo iniciarlas con valores predeterminados de la consulta de otras tablas?... no se algo asi:

    ALTER TABLE Tabla_A ADD

    llave10 VARCHAR(50) default (SELECT tabla_B.canal from tabla_B where tabla_B.id = tabla_A.ID),  <-- (ya lo intente y no)
    llave20 VARCHAR(50) default (SELECT tabla_C.canal from tabla_C where tabla_C.id = tabla_A.ID),
    tipo FLOAT  NULL;

    y aprovechando el foro si quisiera iniciar "tipo" con puros valores en "1" se puede???

    De antemano agradezco su apoyo y su tiempo!!!

    lunes, 29 de enero de 2018 23:03

Respuestas

  • Hola:

    Puedes crear una funcion que te devuelva un valor escalar, y asignar como valor por defecto la ejecución de esa función. En la función retornas tu valor;

    Algo así como esto de ejemplo. En este caso es un int, pero puedes devolver un varchar sobre tu tabla.

    create function DBO.VALOR ()
    returns int
    as
    begin
    declare @usuario int;
    set @usuario =(select isnull(MAX(id_user),0) from usuarios )
    return @usuario

    end

    alter table tipo_user
    add us int default ( DBO.VALOR())
    go

    Espero que te sirva de ayuda.

    martes, 30 de enero de 2018 18:47