Mi történik, ha egy replikált adatbázist megszüntetnek?

Alapesetben semmi. De ha erre az adatbázisra számított valami (view, tárolt eljárás, miegyéb), akkor bizony nagy baj van.

Sajnos ilyenek előfordulhatnak, nem tudjuk kivédeni. A DBA azt gondolja, hogy az adott adatbázis már felesleges és törli. Persze előtte minimum körbe szoktak kérdezni, hogy ez fájni fog-e valakinek, vagy megnézik a doksit (amit ugye folyamatosan frissítünk) az adatbázisok közötti kapcsolatokról.

Ha nincs szerencsénk (régi a doksi, nem kérdeznek semmit, és az adatbázis sincs aktuálisan használatban, hanem mondjuk csak ütemezetten érjük el), akkor megtörténhet a baj.

MSSQL-ben vannak olyan system functionök, amikkel le tudjuk kérdezni egy objektum refereciáit, vagy hogy rá ki hivatkozik.

Az egyik ilyen a sys.dm_sql_referencing_entities, például

select * from sys.dm_sql_referencing_entities('tabla_neve/sp_neve', 'object');

ami kidobja, hogy az adott objektumra ki hivatkozik.

A másik a sys.dm_sql_referenced_entities, például

select * from sys.dm_sql_referenced_entities('tabla_neve/sp_neve', 'object');

ami kidobja, hogy az adott objektum mire hivatkozik.

Ezeket inkább csak megjegyzésnek írom, mert egy teljes adatbázisra lekérdezni az összes objektumra és kiszűrni azokat, amik másik adatbázisra hivatkoznak, kicsit hajszás.

Ezért legyen mindig naprakész a dokumentációnk ebből a szempontból (is).