Hogyan hozzunk létre egy ravaszt-SQL, programozás kezdőknek
Szokás kezdés egy kis elmélet, tudjuk, mi a ravaszt, és amit csinál. Ie Adunk a meghatározása a ravaszt, és úgy kinevezését az adatbázisban.
Meghatározása és célja a ravaszt
Trigger - az adatbázisban tárolt eljárás egy gyakori, de ez nem okozott a felhasználó, és egy esemény, hogy előfordulhat az adatbázisban. Ezek az események lehetnek, és hogyan viszonyulnak a táblákat és a megtekintés:
- INSERT - hozzá rekordokat az asztalra;
- Törlés - feljegyzések a táblázatban;
- UPDATE - update A táblázat rekordjait.
A definíció érteni, most lássuk, mik ezek a ravaszt. És kell csak egy célból, a végrehajtás további intézkedések előtt vagy azt követően, hogy az SQL utasítást, amely a fent említett eseményeket. Magától értetődő, akkor magát adja meg, mikor végre, és hogy milyen esemény, hogy válaszoljon. Írhat közvetlenül a ravaszt összes esemény (beszúrás, törlés, frissítés), és csak egy vagy kettő.
Milyen további intézkedéseket értjük, elvileg bármilyen Például egy esemény betét levelet ravaszt, és tegye az asztalra, és azzal a kiegészítéssel, feljegyzések, például egy értesítést küld a posta, vagy egy másik példa, amit a későbbiekben majd, amelynek lényege az, hogy megőrizze régi és új bejegyzés frissítésekor (update), azaz fajta végeznek ellenőrzést minden változás egy adott táblázatban.
Mint mondtam, a példánkban lesz a következő, akkor végeznek ellenőrzést minden változás egy adott táblázat, azaz Trigger fogják hívni az esemény frissítés.
Már végrehajtott egy hasonló probléma, amely figyelembe veszi az anyag naplózó adatok változásait egy táblázatot-SQL. De mi nem éltünk kiváltó, és használt egyfajta rögtönzött tároló eljárást minden változik, de ma a-SQL anyag - az XML fogjuk használni az XML adatok a ravaszt.
Megjegyzés: Minden tevékenység végzünk Management Studio SQL Server.
Már a kezdet kezdetén, hozzunk létre egy táblázatot, amelyen akasztunk a ravaszt:
A kód egy táblázatot készíteni:
És adjunk hozzá egy pár sort, amely a jövőben, frissíteni fogjuk, tettem hozzá az alábbi információkat, és ellenőrizze a rendelkezésre álló egy egyszerű lekérdezés kiválasztásához

Most hozzunk létre egy táblázatot, amelyben rögzíti a változásokat, hívtam audit.
Creation kód audit táblázat:
- id - az azonosító egy automatikusan növekvõ;
- table_name - a tábla nevét, amelyben a változás bekövetkezett;
- oper - üzemeltetés, ebben az esetben azt fogja írni, hogy frissítse;
- record_old - XML adatok a régi-line;
- record_new - XML adatok egy új sort;
- felhasználónév - aki megváltoztatta;
- date_ch - ha megváltozott.
Most térjünk közvetlenül az írás a ravaszt, és kezdeni, adok egy példát szintaxis, persze egy kicsit egyszerűbb, de még jobb a kezdők számára, valamint érthetőbb és ez elég ahhoz, hogy írja meg az első ravaszt. És az összes szintaktikai látható az interneten, például egy hivatalos nyilatkozatot-SQL. Csak azt gondolom, hogy a kezdők is egy kicsit bonyolult és érthetetlen, hogy itt van egy egyszerű szintaxis, úgymond az alapja ez szintaxis:
CREATE TRIGGERnazvanie triggeraONtablitsa amelyre akasztani
Forna bármely művelet (update, insert, delete)
Itt levelet magukat sql utasításokat kell követni, amikor a ravaszt bekövetkezik
Most nézzük meg, hogy a művelet a ravaszt, hogy indítsa el a frissítést futtatni egy sort.

És nézd meg, mi volt az ellenőrzés táblázatban.
Mint látható, az XML adatok könnyen megtekinthetők, és látjuk, hogy bizonyos értékek a régi feljegyzések és az új már az új rendre.
By the way, ha rákattint a xml adatok hozzáférhetők egy külön ablakban, ami még világosabban látható, hogy az adatokat frissítettük, de most nézzük meg, hogy frissítse több sorban, és hogyan kell viselkedni a ravaszt futtatni egy egyszerű frissítés kérés :
És ellenőrizze az ellenőrzési
Mint látható, van hozzá csak egy sort, de mi is frissítettük a két sor, akkor nagyon könnyen az összes adataink van írva az XML dokumentumban, és a tárolt rendre record_old régi két sort, és record_new változott két vonal, azaz a bármennyire is nem frissíti a sort, akkor megjelenik az XML dokumentumban. És most nézzük still'll kattintson az XML adatokat és meglátjuk, mi történik.

És itt azt mutatja, az összes vonal általunk érintettük.