Tag: SQL Server

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


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


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…)


[T-SQL] Odnajdywanie obiektów stystemowych

SQLServer Wpis z cyklu „ku pamięci”. Ostatnio szukałem metody odnajdywania w bazie danych wszystkich obiektów systemowych (procedur, widoków, funkcji itp). W przypadku table problem ten jest wręcz trywialny wystarczy wykonać następujące zapytanie: (continue reading…)


BI dla mass czyli 5 spotkanie PLSSUG Łódź

PLSSUG3 grudnia jak zawsze w CK ZETO odbyło się piąte spotkanie PLSSUG’a. Podczas spotkania przedstawiona została tylko jedna prelekcja poprowadzona przeze mnie. Tematem były PowerPivots dla Excela zwane wcześniej projektem Gemini. (continue reading…)


[T-SQL] Sklejanie stringów z zapytania

SQLServerPonieważ ostatnio często w moim otoczeniu pojawiało się pytanie „Jak skleić wartości z jednej kolumny w ciąg znaków oddzielonych przecinkami” postanowiłem przedstawić jedną z najszybszych metod na zrealizowanie tego zadania (oczywiście nie jest ona pozbawiona wad): (continue reading…)


24 godzinny maraton SQL Server

24Pass

Ponieważ długo nie pisałem o BI, SQL i innych rzeczach związanych z głównym celem tego bloga, to doszedłem do wniosku, że w końcu trzeba nadrobić straty. (continue reading…)


Prelekcja z SQL Server Reporting Services 2008 – prezentacja

Grupa IT & .Net ŁódźW ramach przygotowań prezentacji na „Speaker Idol” pobawiłem się trochę http://www.slideshare.net. W ramach wyjaśnienia Slied Share to taki YouTube z prezentacjami (takimi niby filmami) zrobionymi na podstawie wrzuconych tam plików Power Point (i jego odpowiednika w OpenOffice). Wynikiem mojej zabawy jest publiczna wersja prezentacji z mojej prelekcji o SSRS 2008. Oto ona: (continue reading…)


8. Spotkanie Łódzkiej Grupy Profesjonalistów IT & .NET i finał „Speaker Idol” Łódź

Grupa IT & .Net ŁódźJuż jutro kolejne, już 8, spotkanie Łódzkiej Grupy Profesjonalistów IT & .NET.
Podczas pierwszej godziny swoją prezentacje o programowaniu z wykorzystaniem ASP.NET MVC przedstawi jeden z moich firmowych kolegów Michał Jaskólski. Michał trzymam kciuki i mam nadziej na bardzo interesując prezentacje. (continue reading…)


Copyright © 1996-2010 [ko{pro}wski]. All rights reserved.
iDream theme by Templates Next | Powered by WordPress