Archive for the ‘MS SQL Server’ Category

Uskrs

Tuesday, September 2nd, 2008

Pronasao sam kod za izracunavanje Uskrsa, po pravoslavnom i po katolickom kalendaru. Izvor: http://www.tek-tips.com/faqs.cfm?fid=5075 Pravoslavni: CREATE FUNCTION dbo.OEaster (@Yr as int) RETURNS datetime AS  -- SELECT dbo.OEaster(2007) BEGIN    Declare @I int, @J int, @Metonic int, @EMo int, @EDay int, @LeapAdj int    Set @LeapAdj=@Yr/100-@Yr/400-2    Set @Metonic=@Yr % 19    Set @I=(19*@Metonic+15) % 30    Set @J=(@Yr+@Yr/4+@I) % 7    Set @EMo=3+(@I-@J+40)/44    ...

MS SQL bug

Tuesday, September 2nd, 2008

Nesto sto sam nedavno otkrio i opekao se: kada navodite listu kolona u SELECT izrazu, pa zaboravite zarez, MS SQL se ne buni, nego jednostavno ignorise deo naredbe. Na primer: SELECT Artikl, cena, Kolicina FROM Roba treba da ispise tri kolone. Ako napisete SELECT Artikl, cena Kolicina FROM Roba (nema vise zareza iz kolone ...

NULLS, LEFT JOIN, EXISTS i NOT IN

Friday, July 4th, 2008

Kada zelimo da uporedimo dve tabele A i B, i da pokazemo koji su redovi prisutni u A, a nema ih u B (Accessov 'unmatched query'), to generalno mozemo da uradimo na nekoliko nacina. Mozemo da upotrebimo LEFT JOIN, mozemo da upotrebimo NOT IN ili NOT EXISTS. Da li su ...

Temp tabele

Wednesday, July 2nd, 2008

Koliko puta mi se desilo da pokusam da izvrsim nesto ovako: SELECT * INTO #TempTAble FROM MyTable da bih dobio poruku Msg 2714, Level 16, State 6, Line 1 There is already an object named '#TempTable' in the database. Pokusaj da ordadim ovo: IF  Object_id('#TempTable') IS NOT NULL DROP #TempTable daje mi ovo: Msg 102 , Level ...

Unique Indeksi i NULL vrednosti

Tuesday, March 25th, 2008

Na sajtu elitesecurity.org povremeno se pojave mozgalice - nesvakidašnji zadaci koje treba rešiti primenom SQL jezika. Jedna od prvih mozgalica bila je "Kako obezbediti jedinstvenost ako su dozvoljene NULL vrednosti u koloni". Drugim rečima, ako vrednost nije NULL onda mora biti jedinstvena, a višestruke NULL vrednosti su dozvoljene. U nekim ...

Korišćenje UDF funkcija u CHECK uslovima – rezervacija soba

Wednesday, March 5th, 2008

Pošto mi se mnogo dopalo korišćenje UDF funkcija u CHECK uslovima, pokušao sam da odgovorim na pitanje, koje se često sreće na forumima: rezervacija soba bez prebukiranja. Evo kako može da se reši: Kreiramo tabelu u koju se upisuju rezervacije soba u jednom hotelu. Tabela ima 3 kolone (Sobe, ZauzetoOD, ZauzetoDo) - Soba ...

Upotreba korisničkih funkcija u CHECK CONSTRAINTS

Wednesday, March 5th, 2008

MS SQL  2000 doneo je jednu lepu novinu - mogućnost pisanja korisničkih funkcija. Uz to je tiho došla još jedna novina, slabo dokumentovana,  iako se može naći u Boks On Line. Korisničke funkcije mogu se pozvati iz CHECK constraints. Funkcije ko funkcije, mogu da pozivaju redove iz posmatrane tabele, ali i ...

Common Table Expressions i iterativni ciklusi

Monday, January 21st, 2008

Upotreba CTE i iterativni procesi Kako bismo u MS SQL ispisali prvih 50 celih brojeva tako da svaki broj bude u posebnom redu? 1 2 3 ... 50 Nešto ovako bi možda pomoglo: DECLARE @i int SET @i = 0 WHILE @i<=50 BEGIN  SET @I = @i + 1  SELECT @i AS i  CONTINUE END Nažalost, svaki SELECT se ...

Čudna mi čuda – CHECK constraint

Wednesday, January 16th, 2008

Pre neki dan dobio sam zadatak da kreiram jednu prilično flat (nenormalizovanu) tabelu i da obezbedim integritet podataka upotrebom CHECK constraints. Pošto ja u stvari nisam DBA, je ovo u praksi retko radim, mislim, da zaista kreiram tabele i slično. Moja priča se završi obično sa ER dijagramom, posle normalizacije. ...

MS SQL Common Table Expressions

Friday, January 4th, 2008

MS SQl 2005 doneo je nekoliko značajnih novih rešenja. Jedna od novosti je upotreba Common Table Expressions (CTE). CTE su u stvari virtualne temp tabele. Šta ovo znači? Pokušaću da pokažem na primeru o čemu se radi. Ne jednom forumu neko je postavio sledeće pitanje: Zadate su tabele: Partner(partner_sif#, ime, prezime) Faktura(faktura_br#, partner_sif, faktura_datum_fakt) Stavke_fakture(faktura_br#,roba_sif#,faktura_kolicina, ...