Este día resolví lo de XMLAntes y XMLDespues que podían ser vacíos
y lo hice haciendo que los campos de XMLAntes y XMLDespues puedan contener
nulos ya que no o no existe o simplemente no encontré ninguna forma de crear un
XML que fuera vacío, por lo que los XML vacíos son en realidad nulos.
Además realice algunos triggers algunos trigger y pare allí ya
que en esta semana estoy hasta la cebolla de trabajos.
A continuación un poco del código que se programó:
CREATE
TRIGGER [dbo].[COInsertados] ON
[dbo].[CuentaObjeto]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
--Variables
para buscar id de otros elementos
declare
@TipoEvento nvarchar(100) = N'Insertar CO';
declare
@Numero_de_Cuenta nvarchar(50); --Numero
cuenta para buscar el idUsuario
--Elementos
para el nuevo elemento
declare
@idUsuario int; --El id del usuario
declare
@Fecha date = GETDATE();
declare
@idTipoEvento int; --El id del tipo evento
declare
@IP int = 0;
declare
@XMLAntes xml;
declare
@XMLDespues xml;
Select
@Numero_de_Cuenta = NewCO.Numero_Cuenta, --Determina
NumeroCuenta y idTipoEvento
@idTipoEvento = TE.id
from inserted NewCO, TipoEvento
TE
where TE.nombre =
@TipoEvento;
Select
@idUsuario = CA.idCliente --Id
del usuario
from
CuentaAhorro CA
where
CA.Numero_Cuenta = @Numero_de_Cuenta;
declare
@TablaXml TABLE ( --Tabla variable para
sacar XML del evento
id int NOT NULL,
idCuenta int NOT
NULL,
Saldo money NOT
NULL,
Fecha_Inicio date
NOT NULL,
Fecha_Final date
NOT NULL,
Monto_Ahorro
money NOT NULL,
Numero_Cuenta
nvarchar(50) NOT NULL
)
insert
into @TablaXml --Insercion del Evento en
tabla variable
select
newCo.id, newCo.idCuenta, newCo.Saldo, newCo.Fecha_Inicio,
newCo.Fecha_Final,
newCo.Monto_Ahorro, newCo.Numero_Cuenta
from inserted newCo
set @XMLDespues = (Select * from
@TablaXml as TablaXml for xml Auto, ELEMENTS XSINIL); --XML del Evento
insert into Evento
(idTipoEvento, idUser, _IP, Fecha, XMLAntes, XMLDespues) --Insercion final al evento
values(@idTipoEvento,
@idUsuario, @IP, @Fecha, @XMLAntes, @XMLDespues);
END
Este día solo invertí el proyecto como 1,5 horas.
Tarde tanto porque al principio estaba haciendo malísimo la tabla que se usa para crear el XML
Tarde tanto porque al principio estaba haciendo malísimo la tabla que se usa para crear el XML