SQL 2012-től használható újdonságok

Lapozás Örök probléma, hogy egy nagy táblán, hogy lehet végigmenni anélkül, hogy mindent beolvasnánk. Ezt a problémát oldották meg a lapozás támogatásával. (Eddig is lehetett ügyeskedni, de ezzel átláthatóbbá válik, mit is akarunk.) select * from person order by prs_id offset 6 rows fetch next 6 rows only Vagy egy table-value függvényben: ALTER FUNCTION dbo.PG_PERSON […]

Adatbázis snapshot

Ez a lehetőség két esetben is jó lehet. Ha szeretnénk valamit kipróbálni, de utána vissza kell térni az eredeti állapotra. Persze erre jó egy backup/restore, de több gigás db esetén ez jóval gyorsabb, mivel csak a különbségeket tárolja a snapshot db-ben. Ha használni, akarjuk a snapshot db-t is, pl. mi volt a módosítás előtt. Vagy […]

Adatbázis eljárások védelme (ADD SIGNATURE)

Ha szeretnénk az egyébként nyílt forráskódú eljárásainkat módosítás ellen védeni, akkor arra az SQL Server lehetőséget ad. Az eljárásokat aláírhatjuk. Ezt a következő példában láthatjuk: — Create cert. CREATE CERTIFICATE cert_signature_demo ENCRYPTION BY PASSWORD = ‘password’ WITH SUBJECT = ‘ADD SIGNATURE demo'; GO — Create a simple procedure. CREATE PROC [sp_signature_demo] AS PRINT ‘This is […]

CROSS APPLY, OUTER APPLY használata

Az APPLY használata sokkal áttekinthetőbbé teszi a lekérdezéseket, ha pl. konvertálást kell végezni egy mezőn és azt még alakítani is kell a Query listában. Pl: SELECT prs_employeeid,prs_name ,CASE r.sex WHEN 1 THEN ‘Man’ WHEN 2 THEN ‘Woman’ ELSE ‘?’ END ,r.sex FROM PERSON p CROSS APPLY (SELECT CAST(prs_employeeid as int) % 10 as sex) r […]

Objektumok függőségei

Az alábbi sciptek agják vissza pédául a SISConstans objektumra való hivatkozásokat: sp_depends ‘dbo.SISConstants’ GO SELECT * FROM information_schema.routines ISR WHERE CHARINDEX(‘dbo.SISConstants’, ISR.ROUTINE_DEFINITION) > 0 GO SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent FROM sys.dm_sql_referencing_entities (‘dbo.SISConstants’, ‘OBJECT’); […]

LAG(), LEAF() offset függvények T&A rendszerekhez (SQL 2012)

A két 2012-es függvény újdonság, egy nagyon hasznos függvénypár, különösen a munkaidő nyilvántartó rendszerekben, illetve azokban a lekérdezésekben, ahol párba kell állítani a sorokat. Pl.: a fizetős parkoló esetén a be és kihajtás között eltelt idő kiszámításakor. Az alábbi példában azokat a sorokat szűrjük ki, ahol az egymás utáni sorok között nincs 5 perc eltérés. […]

Beragadt replikáció

A probléma az, hogy ez esetben a LOG fájl folyamatosan nő és nem is shrink-elhető. Detektálása: SELECT name, log_reuse_wait_desc, * FROM sys.databases where name=’db_name’ Visszaadott log_reuse_wait  érték REPLICATION. A beragadást a következő parancs szünteti meg:  EXEC sp_repldone @xactid = NULL, @xact_sgno = NULL, @numtrans = 0, @time = 0, @reset = 1; Ezzel kapcsolatos linkek: […]

SQL Server 2016 fine-grain access

Ezt nevezik még Row Level Securty (RLS)-nek is. Még nem próbáltam ki, de ez használhatónak tűnik. A videó link-je itt: http://www.msn.com/en-us/lifestyle/pets/sql-server-2016-row-level-security-data-exposed/vp-BBjXW0a Lényege, hogy a sorok szűrését egy függvényben írhatjuk meg és ezt a függvény a táblához rendelhetjük. Amikor a táblára adunk lekérdezést, akkor a függvény csak az 1-el visszatérő sorokat adja vissza. Itt egyébként az […]

1 2 3 4 5