Hola , Buenos días / buenas tardes Comunidad.
Con el gusto de Saludarlos Vengo a pedir su ayuda Urgentemente
Les comento.
Estoy realizando un trigger para 4 tablas las cuales son
tb_reconocimiento
tb_perfil
tb_tipo_reconocimiento
tb_reconocimiento_sucursal
Les explico, el trigger debe hacer un Insert Luego de que se aya Insertado un reconocimiento en la Tabla "TB_RECONOCIMIENTO_SUCURSAL" , se debe insertar en la tabla "TB_RECONOCIMIENTO" de la tabla tb_reconocimiento_sucursal extraigo tres datos
1-@sucursal VARCHAR(100)
2-@id_reconocimiento INT
3-@f_creacion DATE
y lo que necesito hacer es que cuando ocurra esto, en la tabla "TB_RECONOCIMIENTO" se inserte el reconocimiento que se inserto en la tabla "TB_RECONOCIMIENTO_SUCURSAL" para todos los perfiles de la tabla "TB_PERFIL" que tenga la sucursal igual a la sucursal que se le ingreso el reconocimiento.
mi problema cae en que no puedo obtener el id de los perfiles , entonces cuando hace la insercion me dice que el perfil_id va NULL
y no encuentro la manera de poder obtenerlo.
LES DEJO ACA EL TRIGGER QUE AHSTA AHORA TENGO REALIZADO
CREATE TRIGGER trgsucursal ON tb_reconocimiento_sucursal
AFTER INSERT
AS
DECLARE
@sucursal AS VARCHAR,
@reco_id AS INT,
@f_creacion AS DATE
SELECT @reco_id= reconocimiento_id,
@sucursal = sucursal,
@f_creacion = f_creacion
FROM inserted
DECLARE
@id_perfil AS INT
SELECT @id_perfil = tp.id FROM tb_perfil tp WHERE tp.sucursal = @sucursal
SELECT tp.id FROM tb_perfil tp inner join
tb_reconocimiento tb ON tb.perfil_id = tp.id INNER JOIN
tb_tipo_reconocimiento ttr ON ttr.id = @reco_id INNER JOIN
tb_reconocimiento_sucursal trs ON trs.sucursal = @sucursal
BEGIN
INSERT INTO tb_reconocimiento (perfil_id,reconocimiento_id,f_creacion)
VALUES(@id_perfil,@reco_id,@f_creacion)
END
GO
espero me puedan ayudar, de antemano muchas gracias a todos los que me puedan colaborar con algo de sus conocimientos.
bueno y aqui les dejo el diseño de las tablas
Tablas
CREATE TABLE [dbo].[tb_perfil](
[id] [int] IDENTITY(1,1) NOT NULL,
[nombre] [varchar](250) NOT NULL,
[apellidos] [varchar](250) NOT NULL,
[email] [varchar](250) NOT NULL,
[sucursal] [varchar](250) NOT NULL,
[login] [varchar](10) NOT NULL,
[password] [varchar](250) NOT NULL,
[interes] [varchar](500) NOT NULL,
[f_nacimiento] [datetime] NOT NULL,
[tipoperfil_id] [int] NOT NULL,
[f_creacion] [datetime] NOT NULL,
[privado] [bit] NOT NULL,
[activo] [bit] NOT NULL,
CONSTRAINT [PK_tb_perfil] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--------------------------------
CREATE TABLE [dbo].[tb_reconocimiento](
[id] [int] IDENTITY(1,1) NOT NULL,
[perfil_id] [int] NOT NULL,
[reconocimiento_id] [int] NOT NULL,
[f_creacion] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
----------------------------------
CREATE TABLE [dbo].[tb_reconocimiento_sucursal](
[id] [int] IDENTITY(1,1) NOT NULL,
[sucursal] [varchar](500) NOT NULL,
[reconocimiento_id] [int] NOT NULL,
[f_creacion] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
----------------------------
CREATE TABLE [dbo].[tb_tipo_reconocimiento](
[id] [int] IDENTITY(1,1) NOT NULL,
[descripcion] [varchar](6000) NOT NULL,
[img] [varchar](250) NOT NULL,
[nombre] [varchar](150) NOT NULL,
[f_creacion] [datetime] NOT NULL,
CONSTRAINT [PK__tb_tipo___3213E83F07EC11B9] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Leer las respuestas