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

48 lines
964 B
Transact-SQL

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