New question

Question:

Date: 24-11-2016 09:53:58 (In Spanish)

¿Cómo generar un "código certificado" a nivel base de datos, compuesto por 3 columnas de diferentes tablas?[Unresolved]

Tengo 03 tablas:

1.-
 CREATE TABLE [dbo].[Curso]
(
[idcurso] [int] NOT NULL IDENTITY(1, 1),
[nombrecu] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL,

)
GO


2.-
create table [inscripcionParticipante]
(
[codigoMoviCur] [int] NOT NULL IDENTITY(1, 1),
[codigopar] int,
[Codigocupo] int,
[codigoCategoria] int,
[codigoCertificado] char(8) not null,


3
create table [persona]
(
[idper] [int] NOT NULL IDENTITY(1, 1),
[nom] string(20) not null,
[apellidos] string(20) not null,
[dni] int,


Mi consulta es lo siguiente: ¿cómo generar mi codigo certificado, el cual es un CONCAT de "idCurso" de la tabla CURSO con el campo "dni" de la tabla persona y guardarlos en el campo "codigoCertificado" de la tabla inscripcionParticipante

Quisiera generar ese código a nivel de base de datos.
Tags: Database - Development - Query - Question - SQL Server Votes: -1 - Answers: 1 - Views: 8 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 08-02-2017 08:26:20 Pues tu pregunta no es muy clara y el DDL que proporcionas no clarifica en nada así que nos basaremos en suposiciones y supondremos que tienes 3 entidades:

    Curso (tabla Curso)
    Persona (tabla Persona)
    Inscripcion (tabla InscripcionParticipante)

    Supongo que la tabla InscripcionParticipante liga a una persona con un curso.

    Entonces lo que quieres hacer es que cuando generas una inscripción quieres que el campo InscripcionParticipante.codigoCertificado se llene con una cadena especial que consiste en concatenar Curso.idCurso y Persona.dni

    Sin irme más lejos y dándote la respuesta más simple (cumpliendo con tu deseo de que esto lo maneje la base de datos) mi sugerencia es que crees un trigger para el BEFORE INSERT y probablemente para el BEFORE UPDATE donde generarás el código que necesitas.

    Dale una leída a este artículo sobre triggers en MySQL
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com