Witam mam taki problem :
mam dwie bazy na jednym serwerze, chcę stworzyć relacje między tabelami w tch bazach, z tego co wiem nie da się tego zrobić bezpośrednio, a więc muszę użyć triggerów na Insert'ach i Update'ach. niestety przy wywołaniu Update lub Insert dostaję "(1 row(s) affected)" nawet jeśli wyzwalacz nie dopuści do zmiany/dodania danych. niestety nie wiem jak to obejść. jedyne co mi przychodzi na myśl to cofnięcie transakcji :
RAISERROR ('error.', 16, 1);
ROLLBACK TRANSACTION;
ale dostaję wtedy tylko komunikat i nie ma informacji że nie dodano żadnego wiersza , poza tym chyba nie jest to zgodne z "Best Practice"
kod :
ALTER TRIGGER wyzwalacz
ON Baza1.Tabela1
INSTEAD OF UPDATE
AS
BEGIN
--SET NOCOUNT ON;
DECLARE @ID INT
SELECT @ID = Tabela2.fk FROM INSERTED I
IF EXISTS (SELECT pk FROM Baza1.Tabela1 where pk = @ID)
BEGIN
UPDATE Baza2.Tabela2
SET
fk = I.fk,
nazwa = I.nazwa
FROM Baza2.Tabela2 L, INSERTED I
WHERE L.id = I.id
END
ELSE
BEGIN
--RAISERROR ('error', 16, 1);
--ROLLBACK TRANSACTION;
END
END
z góry dzięki za pomoc