2014-09-29
Aktualizacje SQL Server mogą odbywać się w dwóch trybach:
- Quick Fix Engeneering (QFE)
- General Distribution Release (GDR)
Czym to się różni? Są to ścieżki kolejnych buildów SQL, podążając którymi można podnosić wersję serwera. Jeśli wybierasz ścieżkę GDR, tzn. że będziesz instalował wyłącznie Service Packs. Natomiast nie przejmujesz się Hot Fixami lub Cummulative Updates. Pamiętaj, że Hot Fix oraz paczka hotfixów zwana Cummulative Update jest o wiele słabiej testowana. Wiele organizacji nie chce (o ile nie musi) instalować CU i świadomie wybiera ścieżkę GDR. Jeżeli w pewnej chwili pojawi się potrzeba zainstalowania CU, po prostu zrób to. Wskoczysz w ten sposób na ścieżkę QFE. Będzie można z niej zejść, jeżeli pojawi się service pack. Instalacja Service pack przenosi cię ponownie do GDR.
A co to jest QFE? W tym przypadku aktualizujesz SQL instalując Cummulative Updates. Pamiętaj, że każdy kolejny CU posiada wszystkie zmiany wprowadzone w poprzednich CU. W pewnym momencie MS wyda service pack i wtedy należy zainstalować service pack i wskoczyć znowu do GDR.
SQL posiada numery build. Numer do 3149 oznacza, że masz SQL GDR. Wartość powyżej 3150 oznacza, że jesteś w QFE. Jeżeli pojawia się Security Update, to znajdziesz oddzielne pakiety KB do zaktualizowania GDR i QFE. Instalacja pakietu QFE na GDR się uda, przenosząc cię do ścieżki QFE. Próba instalacji KB z GDR na systemie podążającym ścieżką QFE zakończy się komunikatem, mówiącym, że posiadasz nowszą wersję… Dlaczego?
Załóżmy, że KB do instalacji podnosi numer builda w GDR do 1300, a w QFE do 4000. Jednak każdy system w ścieżce QFE ma numer builda większy niż 3150. Instalując więc na nim KB podnoszący build do 1300 obniżylibyśmy numer! Stąd komunikat…
http://support2.microsoft.com/kb/935897
http://blogs.msdn.com/b/gauravagg/archive/2007/04/27/jargons-gdr-and-qfe-release.aspx
2014-09-26
Kończy się job i chcesz wysłać maila na kilka adresów pocztowych… Wszystko fajnie, ale… na karcie Notification po zakończeniu joba można powiadomić tylko jednego operatora.
Czytaj dalej »
2014-09-18
Microsoft wprowadził zmianę w zakresie certyfikacji MCSA, wydaje się że korzystne. Aby zdobyć MCSA należy zdać dwa egzaminy obowiązkowe (np. dla SQL 461 i 462), a następni jeden z listy do wyboru 411 lub 412 lub 463 lub 483. ładniej prezentuje to ilustracja:

Więcej informacji:
http://borntolearn.mslearn.net/btl/b/weblog/archive/2014/09/15/electives-for-windows-server-2012-amp-sql-server-2012-mcsa-certifications-now-available.aspx
Zmiana wchodzi w życie od 15 IX
Strona MCSA SQL 2012:
https://www.microsoft.com/learning/pl-pl/mcsa-sql-certification.aspx
2014-09-17
Masz plik tekstowy o następującej zawartości:
server1.warsaw.pl
server2.berlin.de
server3.krakow.pl
serwer4.gdansk.pl
serwer5.tokyo.jp
Chcesz wczytać go i jeżeli linijka kończy się na PL wyświetlić napis POLSKA, a jeśli adres kończy się na DE wyświetlić napis NIEMCY. Jeśli napis nie kończy się ani na PL ani na DE, należy wyświetlić INNY.
Dobrze nadaje się do tego switch. Switch może wczytać plik oraz dokonać analizy wyrażeniem regularnym. Zadanie jest rezliowane np. przez następujący skrypt:
switch -file .\servers.txt -Regex
{
„.+\.pl$” {Write-Host „POLSKA” -BackgroundColor Red}
„.+\.de$” {Write-Host „NIEMCY” -BackgroundColor Yellow}
default {Write-Host „INNY” -BackgroundColor Blue}
}
-file instruuje switch, że dane wejściowqe należy wczytać z pliku
-regex mówi o tym, że decyzja o wykonaniu odpowiednij instrukcji switch będzie podejmowana w oparciu o dopasowanie do wyrażenia regularnego.
„.+\.pl$” to wyrażenie regularne określające teksty składające się co najmniej z jednej litery, a za nią ciągu.pl
Efekt skryptu z naszymi danymi wejściowymi:

2014-09-17
Dajmy na to, że masz listę numerów telefonów:
$list = '+48 123456789′,’123456789′,’0048 123456789′,’+48123456789′
Chcesz z niej wylistować tylko te, które mają budowę:
- +48 123456789 lub
- 0048 123456789
Czyli na początku +48 lub 0048, po czym występuje spacje i 9 cyfr. Odpowiada za to maska \+48 [0-9]{9}|0048 [0-9]{9}
Definiujemy więc zmienną $mask:
$mask = [regex]”\+48 [0-9]{9}|0048 [0-9]{9}” Czytaj dalej »
2014-09-17
Kiedy musisz przeszukiwać teksty, dopasowywać je do maski, szybko okaże się, że metaznaki * i ? znane chociażby jako symbole jednoznaczne rozumiane przez system operacyjny podczas operacji na plikach nie są wystarczające. I wtedy z pomocą przychodzą wyrażenia regularne, a wraz z nimi dziesiątki i setki zupełnie nowych problemów….
Najprostsze wyrażenie regularne to – dokładnie ten sam napis, który chcesz dopasować np.
Tekst Janosik pasuje do wyrażenia regularnego Janosik
Budując wyrażenia regularne możesz korzystać z symboli specjalnych. Należą do nich
\^$.*+|?()[]{}
Dokładniej ich znaczenie opisujemy poniżej:
\ backslash
Pozbawia symbolicznego znaczenia kolejnego znaku. Aby stworzyć wyrażenie do którego pasuje tekst 1+2 chciałoby się skorzystać z wyrażenia regularnego 1+2 ale przecież + ma inne znaczenie (przedstawimy je dalej). Dlatego należy pozbawić + tego specjalnego znaczenia. Poprawne wyrażenie regularne to więc 1\+2 Czytaj dalej »
2014-09-15
Podziękowania dla Tomka i Rafała, którzy podsunęli to rozwiązanie 🙂
Potrzebujesz w SQL listę użytkowników z AD. To proste. Definiujesz linked server wskazujący na usługi AD, apotem piszesz zapytania:

Do połączenia użyj poświadczeń aktualnego użytkownika

No i gotowe. Można pisać zapytania do AD:
SELECT displayname, samaccountname
FROM OPENQUERY( ADSI, 'SELECT extensionAttribute3,SAMAccountName,displayname FROM ”LDAP://intranet.domain/OU=Folder3,OU=Folder2,OU=Folder1,DC=intranet,DC=domain”
Where objectCategory = ”Person” AND objectClass = ”user” AND department=”Departament name”’)