none
SQL-ATRIBUTOS RRS feed

  • Pregunta

  • Muy buenos dias 
    estos creando una base de datos en sql server 
    En la tabla persona tenemos el atributo Nombre (primer nombre, segundo nombre, apellido,)
    como puedo crear este atributo compuesto.
    Agradeceria un ejemplo del codigo
    jueves, 5 de noviembre de 2020 16:26

Todas las respuestas

  • No, no hay atributos compuestos en SQL Server. Tienes que crear las tres partes como tres columnas independientes. Y después, desde el código cliente que accede a la tabla, si quieres puedes componerlas insertándolas en un único objeto que haga de contenedor.

    Lo que sí puedes hacer, si quieres, es crear un índice compuesto que abarque las tres columnas, incluso podría ser la clave primaria si te hiciera falta.

    create table Persona (
        IdPersona int identity primary key,
        [primer nombre] nvarchar(64),
        [segundo nombre] nvarchar(64),
        apellido nvarchar(64)
    )
    go
    
    create unique index IdxEjemplo on Persona([primer nombre], [segundo nombre], apellido)
    go

    jueves, 5 de noviembre de 2020 18:19
  • Hola NelsonPerez:

    como puedo crear este atributo compuesto

    Además de lo ya comentado, y como de la definición de tú pregunta, al menos para mi no queda del todo clara, y por si acaso te refieres a columnas calculadas.

    create table dbo.Persona (
        IdPersona int identity primary key,
        [primer nombre] nvarchar(64),
        [segundo nombre] nvarchar(64),
        apellido nvarchar(64)
    )
    go
    insert into dbo.Persona ([primer nombre], [segundo nombre], apellido)
    values
    ('Ana','Belén','García'),
    ('Jorge',null,'Pérez');
    go
    Select * from dbo.Persona;
    go
    Alter table Persona
    Add [Nombre Completo Opción Calculada] as Concat([primer nombre],' ',[segundo nombre],' ',[apellido]);
    go
    Alter table Persona
    Add [Nombre Completo Opción Persistida] as Concat([primer nombre],' ',[segundo nombre],' ',[apellido]) persisted;
    go
    Select * from dbo.Persona;

    La opción calculada, el motor la ejecuta cada vez que se consulta la tabla. La opción persistida, se guarda físicamente.

    Columnas calculadas

    https://docs.microsoft.com/es-es/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-ver15

    jueves, 5 de noviembre de 2020 20:27