SQL Day 2010

SQL Day 2010Już niedługo … już za momencik… rozpocznie się rejestracja na kolejną edycję SQL Day 2010. Jedną z największych polskich imprez poświęconej Microsoft SQL Server. W tym roku zapraszam szczególnie ponieważ będę miał przyjemność prowadzić na niej sesję o Master Data Services. Nowej usłudze, która powstała wraz z SQL Server 2008 R2. Mam nadzieję, że moja sesja nie będzie bardzo odbiegać poziomem od pozostałych a poprzeczka postawiona jest bardzo wysoko, bo wśród prelegentów same „sławy” polskiego środowiska SQL Server:

  • Maciej Pilecki
  • Grzegorz Stolecki
  • Paweł Potasiński
  • Damian Widera
  • Łukasz Grala
  • Marek Adamczuk
  • Maciej Szeliga

Wszystkich zainteresowanych imprezą zapraszam na stronę sqlday.pl.


SQL Workshop. Kraków

Zapraszam wszystkich na warsztaty SQL, które odbędą się w Krakowie, 18 września na terenie Wyższej Szkoły Zarządzania i Bankowości. Organizatorem warsztatów jest krakowski i katowicki oddział PLSSUG. W trakcie jednego dnia odbędą się trzy warsztaty poświęcone tematyce developerskiej, administracyjnej oraz BI. Wśród prowadzących specjaliści od SQL Server w tym MVP Grzegorz Solecki oraz Marcin Szeliga.
Więcej informacji o spotkaniu na stronie workshop.sqlday.pl . Rejestracja już otwarta (dostępna ze strony spotkania), niestety liczba miejsc jest OGRANICZONA do 60 a więc trzeba się spieszyć =). A już niedługo SQL DAY 2010, o którym więcej informacji już wkrótce


VirtualStudy.pl – Czwartki z BI – Reporting Services

PLSSUG
Na portalu SSAS.pl właśnie została zamieszczona moja prezentacja z cyklu Virtual Study – „Czwartki z BI” poświęcona SQL Server Reporting Services 2008. Wszystkich zainteresowanych zapraszam: http://ssas.pl/2010/07/18/virtualstudy-pl-czwartki-z-bi-reporting-services

Mam nadzieję, że już niedługo pojawi się wersja wideo na virtualstudy.pl =)


[T-SQL] Korzystaj z aliasów bo…

Załóżmy, że posiadamy dwie tabelki posiadające te same pola. Dla uproszczenia o to kod do ich stworzenia:


CREATE TABLE #TEST1 ([ID] INT,[IDN] VARCHAR(200))
INSERT INTO #TEST1 VALUES (1,'Jeden')
INSERT INTO #TEST1 VALUES (2,'Dwa')
INSERT INTO #TEST1 VALUES (3,'Trzy')
INSERT INTO #TEST1 VALUES (4,'Cztery')
INSERT INTO #TEST1 VALUES (5,'Pięć')
INSERT INTO #TEST1 VALUES (6,'Sześć')
INSERT INTO #TEST1 VALUES (7,'Siedem')
INSERT INTO #TEST1 VALUES (8,'Osiem')
INSERT INTO #TEST1 VALUES (9,'Dziewięć')
INSERT INTO #TEST1 VALUES (10,'Dziesięć')
CREATE TABLE #TEST2 ([ID] INT,[IDN] VARCHAR(200))
INSERT INTO #TEST2 VALUES (3,'Trzy')
SELECT * FROM #TEST1
SELECT * FROM #TEST2

Powiedzmy, że teraz z tabelki #TEST1 chcemy usunąć te wartości, które znajdują się także w tabeli #TEST2. Wykonujemy więc bardzo prosty kawałek kodu:

DELETE FROM #TEST1 WHERE [IDN] IN (SELECT [IDN] FROM #TEST2)

Po usunięciu sprawdzamy co zostało nam w tabeli #TEST1:

SELECT * FROM #TEST1

Wynik jest taki jak chcieliśmy nie ma rekordu z wartością 3. Załóżmy, że jakiś nieznany osobnik skasował w naszej tabeli #TEST2 kolumnę [IDN] i ponownie dodał wartość 3 do tabeli #TEST1

ALTER TABLE #TEST2 DROP COLUMN [IDN]
INSERT INTO #TEST1 VALUES (3,'Trzy')

Ponieważ w naszej tabeli #TEST1 ponownie pojawiła się wartość 3 chcemy ją znów usunąć. Ponieważ nie wiemy, że nasz złoczyńca skasował kolumnę [IDN] wykonujemy polecenie kasujące, z którego korzystaliśmy poprzednio. Zapewne część z was spodziewa się tego, że wynikiem takiego kasowania będzie błąd ponieważ nie ma już kolumny [IDN] w tabeli #TEST2..
Jeżeli wykonaliście już kod wiecie, że niestety nic takiego się nie stanie. Zamiast tego z tabeli #TEST1 zostaną skasowane wszystkie wpisy! Jeżeli zadajecie sobie pytanie „ALE DLACZEGO !!” odpowiedź jest bardzo prosta. Ponieważ SQL Server nie znalazł w tabeli #TEST2 kolumny [IDN] założył, że należy znaleźć inną kolumnę [IDN] i znalazł ją w tabeli #TEST1 co spowodowało że zapytanie kasujące było zinterpretowane tak samo jak następujące zapytanie:

DELETE FROM #TEST1 WHERE [IDN] IN [IDN]

Co oczywiście skasuje wszystkie wpisy w tabeli #TEST1. Jak uniknąć takich sytuacji ? Korzystaj z aliasów lub pełnych nazw w takich przypadkach. Wystarczy aby nasze zapytanie kasujące było zbudowane w następujący sposób:

DELETE FROM #TEST1 WHERE [IDN] IN (SELECT T2.[IDN] FROM #TEST2 T2)

Po wywołaniu tego zapytania zamiast skasować cokolwiek w tabeli #TEST1 dostaniemy następujący błąd:
Msg 207, Level 16, State 1, Line 1
Invalid column name ‘IDN’.

Co w założonej sytuacji jest jak najbardziej poprawne.


Socialnomics – rewolucja, która nas otacza

Prawda o internecie, który nas otacza… chociaż bardziej poprawnym stwierdzeniem było by: prawda o świecie, który nas otacza. Z drugiej strony bardzo dobra reklama ksiązki  Erik Qualmana „Socialnomics”.

* znalezione na Facebooku =)

1 Comment more...

Data-tier Application – materiały z prezentacji

PLSSUG

Już dawno miałem opublikować te materiały, ale jakoś się nie złożyło. Dlatego aby to naprawic umieszczam prezentację, oraz przykłady, które wykorzystałem w trakcie mojej sesji dotyczącej Data-Tier Application, która odbyła się podczas łódzkiego SQL Server 2008 R2 Community Launch.

Przykłady do pobrania w postaci pliku: Data-tier Applications.zip (19MB)
Aby uruchomić przykłady konieczne jest posiadanie Visual Studio 2010 oraz SQL Server 2008 R2

Czwartki z BI.. już dziś

Razem z Bartkiem Graczykiem, Łukaszem Gralą i Grzegorzem Stoleckim mam wielką przyjemność zaprosić wszystkich na cykl sesji poświęconych Business Intelligence, które zostaną poprowadzone na VirtualStudy.pl.

W trakcie 8 sesji postaramy się przybliżyć wam tematy związane z podstawami BI, SSAS, SSIS oraz SSRS.

Rejstracja na spotkania znajduje się pod tym adresem: http://virtualstudy.pl/forum/spotkania/1262-czwartki-z-business-intelligence (continue reading…)


Już jest… SQL Server 2008 R2 =)

 


Długopisem po ekranie…

Kolejna ciekawa propozycja rozwinięcia technologii ekranów dotykowych stworzona przez Microsoft Research w oparciu o Microsoft Surface…


Godzina dla ziemi

Zainicjowana przez organizację ekologiczną WWF Godzina dla Ziemi to największa na świecie akcja społeczna na rzecz ograniczenia zmian klimatycznych. Miliony ludzi na całym globie na jedną godzinę zgaszą światło, aby symbolicznie przeciwstawić się największemu zagrożeniu dla naszej planety i apelować o konkretne działania na rzecz ograniczenia emisji gazów cieplarnianych. (continue reading…)


  • Dość długo trwało, nim Trillian rozgryzła Zaphoda. Jedną z największych trudności było nauczenie się odróżniać, kiedy udaje głupiego, by ośmielić swych rozmówców, kiedy udaje głupiego, bo nie chce mu się myśleć i woli pozostawić to komuś innemu, kiedy bezczelnie udaje głupiego, by ukryć, że tak naprawdę nie wie o co akurat chodzi, a kiedy rzeczywiście jest głupi.
     Douglas Adams
  • Copyright © 1996-2010 [ko{pro}wski]. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress