Mi hasznos lehet dinamikus sql


- és az eredmény szomorú, mert válassza ki a művelet sikeres volt, mivel a működés DROP TABLE ügyfelek.
  • Elképzelhető, hogy lesz néhány változó tartalmazza a parancs kódok. Valami ehhez hasonló EXEC (@ sql1 + @ sql2 + @ sql3).
    Milyen nehézségek merülhetnek fel ide?
    Emlékeznünk kell, hogy minden csapat külön működik, bár első pillantásra úgy tűnhet, hogy az összefűzés operátor (@ sql1 + @ sql2 + @ sql3) kerül végrehajtásra. majd kövesse az általános parancs. Azt is meg kell jegyezni, hogy az általános korlátozás az EXEC parancs paraméter 4000 karakter.
  • Az implicit öntvények, mert paraméterek kerülnek továbbításra karakterlánc.
  • Mi fog változni, ha a sp_executesql. - Fejlesztői könnyebb írni a kódot és a hibakeresés, mert kód van írva majdnem olyan, mint egy normális SQL lekérdezés.

    Példakód sp_executesql:

    A lekérdezés terv segítségével sp_executesql:

    Ez is az egyik előnye a sp_executesql - az a képesség, hogy vissza értéket keresztül OUT paraméter.

    Ebben a példában már megoldotta az egyik probléma a projekt segítségével a dinamikus SQL.

    Tegyük fel, hogy van egy jó (de ez nem számít, sőt, ez az: a termék profilt a helyzetben van, a személyes profil). Az ötlet az, hogy minden objektum saját tuiajdonságkésziete (attribútumok), amely jellemzi, és lehet, hogy egy másik számot, és ezek különböző. Hogyan kell tárolni az adatbázisban - ez a probléma az építészet.

    Az ügyfél számára szükséges egy jelentést, amely magából a képviselők n sorból és m oszlopból. Ahol m és volt a attribútumok. A jelentés folyik tárgycsoport vagy valamilyen tárgyat a csoportból. De a jelentése ugyanaz marad: Minden jelentés tartalmaz egy másik oszlopok számát az egyes objektumok csoportja.

    Mivel az elején volt egy kapcsolatot a tárgyak, a választott megoldás megváltoztatása nélkül az adatbázis architektúra. Véleményünk szerint a megoldás erre a problémára is több:

    • Használja a jelentési rendszert, például MS SQL Reporting Service. Hozzon létre egy mátrix jelentését, valamint egy kérés, mi lesz „egyszerű» Kiválasztás. Miért nem? A projekt nem annyira jelentések telepíteni a SSRS.
    • Használja ugyanazt az „egyszerű”, és a select a szerver oldalon, hogy hozzon létre egy DataSet rendelkezik a szükséges „forma”. Igen, a probléma megoldódott Kezdetben, amikor a termék adatok nagyon kicsi volt. Amint az adatok már elég sokat, míg a jelentés gyűjtemény volt, ki a meghatározott időkorlát.
    • Használja Pivot SQL-ben. Igen, a tökéletes megoldás, ha tudja, hogy csak azokat a tulajdonságokat, és az új nem. És mi a teendő, ha a tulajdonságok száma gyakran változik. Ismét minden csoport az objektumok van saját attribútumok, ismét visszamenni létrehozását eljárások egyes objektumok csoportja. Nem egy nagyon kényelmes megoldás, nem?
    • És ha használja Pivot, de adjunk hozzá kevés dinamikus sql. - Igen, ez egy megoldás, hogy joga van az életre. Őt fogjuk leírni, mint egy példa a dinamikus sql ...

    A jelentés alapján kerül sor a szokásos kérés:

    A fő kódot a jelentésben:

    Kapcsolódó cikkek