LevelOS-Core/UI/ArquivosAuxiliares/Triggers/Despesas_triggers.sql

47 lines
862 B
Transact-SQL

CREATE OR ALTER TRIGGER TR_Despesas_GerarCodigo
ON Despesas
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UltimoNumero INT;
SELECT
@UltimoNumero =
ISNULL(
MAX(
TRY_CAST(
REPLACE(CODIGO,'DE','')
AS INT)
),
99)
FROM Despesas
WHERE CODIGO LIKE 'DE%';
;WITH Numerados AS
(
SELECT
ID_DESPESAS,
ROW_NUMBER() OVER
(
ORDER BY ID_DESPESAS
) AS Linha
FROM inserted
)
UPDATE D
SET
CODIGO =
'DE' +
RIGHT(
'0000' +
CAST(
@UltimoNumero + N.Linha
AS VARCHAR),
4)
FROM Despesas D
INNER JOIN Numerados N
ON D.ID_DESPESAS =
N.ID_DESPESAS;
END
GO