Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IF OBJECT_ID('CópiaFornecedores') IS NOT NULL
- DROP TABLE CópiaFornecedores
- IF OBJECT_ID('CópiaFacturas') IS NOT NULL
- DROP TABLE CópiaFacturas
- SELECT * INTO CópiaFornecedores FROM Fornecedores
- SELECT * INTO CópiaFacturas FROM Facturas
- GO
- CREATE TRIGGER CópiaFornecedores_UPDATE_DELETE_IR
- ON CópiaFornecedores
- AFTER DELETE,UPDATE
- AS
- IF EXISTS (SELECT * FROM Deleted JOIN CópiaFacturas
- ON Deleted.IDFornecedor = CópiaFacturas.Fornecedor)
- BEGIN
- RAISERROR('Este fornedor tem facturas associadas.
- Logo, não pode ser eliminado.', 11, 1)
- ROLLBACK TRAN
- END
- GO
- CREATE TRIGGER CópiaFacturas_INSERT_UPDATE_IR
- ON CópiaFacturas
- AFTER INSERT,UPDATE
- AS
- IF NOT EXISTS (SELECT * FROM CópiaFornecedores WHERE IDFornecedor IN (SELECT Fornecedor FROM Inserted))
- BEGIN
- RAISERROR('Não existe nenhum fornecedor com este identificador.
- Escolha outro', 11, 1)
- ROLLBACK TRAN
- END
- /*2.1*/
- DELETE FROM CópiaFornecedores
- WHERE Nome = 'Bell'
- INSERT INTO CópiaFacturas(IDFactura, Fornecedor, NúmeroFactura,DataFactura, TotalFactura,Pagamento,Crédito,CondiçãoPagamento,DataVencimentoFactura,DataPagamento) VALUES (4646, 70,'JC48864',CONVERT(datetime,'02/02/2006'),1,552,2000,2,CONVERT(datetime,'02/02/2006'),NULL)
- /*2.2*/
- IF OBJECT_ID('CópiaFornecedores') IS NOT NULL
- DROP TABLE CópiaFornecedores
- IF OBJECT_ID('CópiaFacturas') IS NOT NULL
- DROP TABLE CópiaFacturas
- SELECT * INTO CópiaFornecedores FROM Fornecedores
- SELECT * INTO CópiaFacturas FROM Facturas
- GO
- /*2.2.1*/
- IF OBJECT_ID('fn_GetDiv') IS NOT NULL
- DROP FUNCTION fn_GetDiv
- GO
- CREATE FUNCTION fn_GetDiv(@idforn INT)
- RETURNS MONEY
- BEGIN
- DECLARE @ret INT;
- SET @ret = (SELECT SUM(TotalFactura-Pagamento-Crédito) FROM CópiaFacturas WHERE Fornecedor = @idforn)
- RETURN @ret
- END
- GO
- /*2.2.4*/
- IF OBJECT_ID('Facturas_Bloquear') IS NOT NULL
- DROP TRIGGER Facturas_Bloquear
- GO
- CREATE TRIGGER Facturas_Bloquear
- ON CópiaFacturas
- AFTER INSERT,UPDATE
- AS
- /*2.2.2*/
- IF (SELECT COUNT(*) FROM Inserted) > 1
- BEGIN
- RAISERROR('Inserir apenas um registo.', 11, 1)
- ROLLBACK TRAN
- END
- /*2.2.3*/
- DECLARE @x INT;
- SET @x = (SELECT Fornecedor FROM Inserted)
- IF (dbo.fn_GetDiv(@x) > 2500)
- BEGIN
- RAISERROR('Dívida superior a 2500€. Adição Bloqueada.', 11, 1)
- ROLLBACK TRAN
- END
- GO
- INSERT INTO CópiaFacturas(IDFactura, Fornecedor, NúmeroFactura,DataFactura, TotalFactura,CondiçãoPagamento,DataVencimentoFactura, Pagamento,Crédito) VALUES (125,82,'LS2015-223',getdate(),1235.25,1,dateadd(DAY,30,getdate()),0,0)
- INSERT INTO CópiaFacturas(IDFactura, Fornecedor, NúmeroFactura,DataFactura, TotalFactura,CondiçãoPagamento,DataVencimentoFactura, Pagamento,Crédito) VALUES (126,122,'LS2015-224',getdate(),2400.30,4,dateadd(DAY,30,getdate()),0,0)
- /*2.3*/
- IF OBJECT_ID('Trig_FactED') IS NOT NULL
- DROP TRIGGER Trig_FactED
- IF OBJECT_ID('Trig_FactED_Del') IS NOT NULL
- DROP TRIGGER Trig_FactED_Del
- GO
- CREATE TRIGGER Trig_FactED_ins
- ON ItensFacturasED
- AFTER INSERT,UPDATE
- AS
- UPDATE ProdutosED SET Quantidade=Quantidade - (SELECT Quantidade FROM Inserted) WHERE Código = (SELECT Produto FROM inserted)
- GO
- CREATE TRIGGER Trig_FactED_Del
- ON ItensFacturasED
- AFTER INSERT,UPDATE
- AS
- UPDATE ProdutosED SET Quantidade=Quantidade - (SELECT Quantidade FROM Inserted) WHERE Código = (SELECT Produto FROM inserted)
- /*2.3.1*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement