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.
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.
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: