Ostatnio pokazałem jak można stworzyć bazę oraz tabele za pomocą designera – w skrócie, za pomocą klikania myszką. Dzisiaj przedstawię jak robić to z poziomu komend języka T-SQL. Na samym początku otwieramy SSMS oraz klikamy w przycisk „New Query”. Uzyskamy edytor, w którym będziemy pisać nasz kod. Poniżej zamieszczam kod tworzący nową bazę danych oraz tabelę Osoba, podobną do tej z poprzedniego wpisu. Kod należy skopiować* i wkleić do edytora a następnie wywołać przyciskiem Execute (ten z wykrzyknikie...
Bazy danych i XML 3630 dni, 22 godziny, 53 minuty temu 44 źrodło rozwiń
Dzisiaj napiszę coś o typach danych jakie możemy zdefiniować w kolumnach tworzonych tabeli. Ostatnio, tworząc tabelę Osoba użyliśmy typów liczbowych (ID, PESEL) oraz typu tekstowego (Imie, Nazwisko, Email…). Istnieją jeszcze inne typy danych, o których musimy wiedzieć. Są nimi wspomniane typy tekstowe:char(x) varchar(x) tekst nchar(x) nvarchar(x) ntext gdzie x to ilość przechowywanych znaków.* przedrostek n w ww. typach oznacza, że każdy znak zapisany jest na 2 bajtach pamięci (dwukrotnie więcej niż...
Bazy danych i XML 3634 dni, 1 godzinę, 45 minut temu 91 źrodło rozwiń
Autor: Jakiś czas temu, we wpisie związanym z SQLServer Management Objects (SMO), pod tytułem: „SMO i sprawdzanie, czy baza danych istnieje [PL]” otrzymałem komentarz, że warto wspomnieć o jeszcze innych możliwościach SMO, jak choćby listowanie instancji SQL Server: SmoApplication.EnumAvailableSqlServers(). W tym wpisie chciałbym właśnie wrócić do tego tematu.Otóż tak jak zostało to wspomniane statyczna funkcja SmoApplication.EnumAvailableSqlServers() potrafi dostarczyć listę instancji serwera Ms SQL. Mo...
Bazy danych i XML 3636 dni, 17 godzin, 36 minut temu 97 źrodło rozwiń
Aby rozpocząć uruchamiamy SQL Server Managament Studio* a następnie logujemy się do serwera. Klikamy prawym przyciskiem na folderze Databases a później wybieramy jej nazwę i zatwierdzamy przyciskiem OK. Po wykonaniu powyższych instrukcji uzyskamy pustą bazę zawierającą katalogi gdzie będą przechowywane:DiagramyTabeleWidokiSynonimyProgrammability (Procedury, Funkcje oraz inne)Service BrokerStorage**Security Dane przechowywane są w tabelach. Stwórzmy zatem naszą pierwszą tabelę zawierającą np. i...
Bazy danych i XML 3638 dni, 11 godzin, 42 minuty temu 98 źrodło rozwiń
Dzisiaj pokażę jak zainstalować silnik bazodanowy SQL Server. Do instalacji zalecam zupełnie darmową i funkcjonalną wersję 2008 R2 Express. * Instalkę pobieramy bezpośrednio ze strony http://www.microsoft.com/express/Database/ Klikamy pobierz wybierając wersję 32/64 bit w zależności od posiadanego systemu. Zanim jednak przystąpimy do instalacji należy pobrać jeszcze kilka narzędzi. Są nimi:Microsoft .NET Framework 3.5 SP1 – linkMicrosoft Windows Installer 4.5 – linkWindows PowerShell 1.0 – link Do...
Bazy danych i XML 3641 dni, 21 godzin, 48 minut temu 200 źrodło rozwiń
Czasami istnieje potrzeba sprawdzenia czy baza danych jest dostępna na serwerze Ms SQL Server. W tym celu można wykorzystać widok sys.databases, na którym można wykonać select'a i sprawdzić czy dana baza danych występuje na liście (np. „select * from sys.databases”). Zobaczmy jednak, jak to zrobić przy pomocy SMO.O SMO, czyli SqlServer Management Objects pisałem już wcześniej we wpisie dot. zagadnienia jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy), więc ...
Bazy danych i XML 3652 dni, 17 godzin, 49 minut temu 48 źrodło rozwiń
Celem mojego pierwszego wpisu dotyczącego NHibernate było krótkie wprowadzenie w świat tego ORM’a. Dziś przyszedł czas na trochę praktyki. Zaczniemy od prostej konfiguracji aplikacji (konsolowej), aby ta mogła połączyć się z bazą danych oraz automatycznie utworzyć w niej przykładową tabelę. Wykorzystamy do tego celu bibliotekę Fluent NHibernate, dzięki której, w przeciwieństwie do standardowej konfiguracji wykorzystującej pliki XML znanej z oryginalnego Hibernate’a, skonfigurujemy wszystko z poziomu kodu...
Bazy danych i XML 3652 dni, 17 godzin, 49 minut temu 173 źrodło rozwiń
Czy zastanawialiście się kiedyś jak dodawać parametry doSqlCommand? Klasa ta zawiera pole Parameters typy SqlParameterCollection, na którym możemy wykonać między innymi metodę AddWithValue(string, object). W internecie jak i w dokumentacji w nazwach parametrów na początku jest zawsze użyty znak “@”. Przy okazji jednego z projektów musiałem odpowiedzieć sobie na pytanie: Czy muszę zadbać o “@” przy nazwie parametru? Nie zastanawiając się długo postanowiłem, zgodnie duchem empiryzmu, sprawdzić co się stani...
Bazy danych i XML 3656 dni, 19 godzin, 18 minut temu 145 źrodło rozwiń
Po przerwie związanej ze świętami, mam nadzieję, że blog wróci do dawnej formy… W bazach danych wykorzystuje się zwykle jako wartości kluczy głównych i obcych liczby całkowite – INT. Drugim podejściem (mniej popularnym) jest wykorzystanie globalnych identyfikatorów GUID. Jaka jest tak naprawdę różnica? Skupmy się na zaletach i wadach każdego z nich. Zaczynamy od typów całkowitych (int). Zalety: -bardzo mały rozmiar (tylko 4 bajty), -naturalna postać – każdy kolejny wiersz to sekwencja ...
Bazy danych i XML 3658 dni, 22 godziny, 41 minut temu 136 źrodło rozwiń
Jakiś czas temu pisałem na temat jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy). W takim przypadku, gdy kolumna w tabeli w DataSet'cie ma ustawioną właściwość AutoIncrement, to należy w kolumnie w SQL serwerze ustawić Identity na true, oraz IdentityIncrement i IdentitySeed na odpowiednie im wartości (AutoIncrementStep i AutoIncrementSeed) pochodzącej ze źródłowej kolumny z tabeli z DataSet'a. Niestety w takim przypadku, podczas późniejszego ładowania dany...
Bazy danych i XML 3660 dni, 2 godziny, 42 minuty temu 72 źrodło rozwiń
Autor: Kilka dni temu w poście Statystyka… zapowiedziałem, iż postaram się zaproponować kawałki kodu, które umożliwią włączenie statystyk dla zapytań LINQ to SQL. Zadanie okazało się trochę trudniejsze niż myślałem, ale udało się coś osiągnąć. Zobaczmy jak.Rozwiązanie Naïve Pierwsze co przychodzi na myśl to proste rozszerzenie obiektu DataContext o nasze metody. Mniej więcej tak: publicstaticclassDataContextExt { publicstatic T WithStatistics
Bazy danych i XML 3660 dni, 2 godziny, 42 minuty temu 43 źrodło rozwiń
Nie… w tym wpisie nie będzie o statystyce odwiedzin bloga i innych podobnych rzeczach, o których można dziś na wielu blogach (u mnie o tym będzie może następny wpis :)). Będzie o klasie o której pewnie niewielu z was wcześniej wiedziało. Do wczoraj nie wiedziałem także i ja. Poznajcie – SqlStatistics. Klasa jest internal sealed tak więc czemu o niej cokolwiek piszę? A no ponieważ do samej klasy dostać się nie możemy natomiast do danych przez nią zbieranych już tak. Śledząc jej zależności Reflector’em zau...
Bazy danych i XML 3662 dni, 5 godzin, 45 minut temu 95 źrodło rozwiń
Niecały tydzień temu napisałem posta o LINQ to XML. Wtedy jednak zająłem się tylko tym czym jest XML, co to jest LINQ oraz jak wygląda przetwarzanie dokumentów XML przy pomocy przestrzeni nazw System.Xml. Dzisiaj jako kontynuacja wpisu pokażę już konkretne zapytania XLINQ oraz jak ogólnie wygląda przestrzeń nazw System.Xml.Linq...
Bazy danych i XML 3664 dni, 15 godzin, 52 minuty temu 84 źrodło rozwiń
Kiedy piszemy aplikacje, prędzej czy później nadejdzie czas kiedy będziemy musieli korzystać z przetwarzania dokumentów XML. Nie ważne czy będziemy je tworzyć czy przetwarzać już istniejące. Dokument XML jest niczym innym jak zwykłym plikiem tekstowym lub strumieniem w pamięci. A więc bez problemu możemy napisać klasę lub klasy parsujące tekst XML i go odpowiednio przerabiać. Jednak samodzielne pisanie takiej klasy mija się z celem, zwłaszcza kiedy mamy do przetworzenia na przykład jeden plik. Oczywiście...
Bazy danych i XML 3664 dni, 15 godzin, 52 minuty temu 104 źrodło rozwiń
Indeksy są dobrym mechanizmem na optymalizację często powtarzających się zapytań. Przykładowo rozważmy następujące zapytanie: SELECT FirstName,LastName FROM Persons where Age>30 Dla dużej ilości danych, wykonanie powyższego kodu może trochę potrwać. Jeśli dodalibyśmy indeks na kolumnie Age, czas wykonania znaczącą by się skrócił ponieważ dane byłyby w pewnym stopniu sortowane w pamięci (w dużym uproszczeniu dane są przechowywane w strukturze drzewiastej, która znacznie przyśpiesza selekcję). Tematem po...
Bazy danych i XML 3672 dni, 6 godzin, 25 minut temu 103 źrodło rozwiń
CTE w T-SQL można porównać do tymczasowej tabeli. Prawdziwa siła CTE jednak tkwi w możliwości rekurencyjnego przechodzenia przez węzły. Ogólna zasada tworzenia wygląda następująco:WITH expressionname [ ( columnname [,...n] ) ] AS ( CTEquerydefinition ) exoression_name stanowi nazwę obiektu CTE. Następnie listujemy wszystkie kolumny, które będą występować w CTE. Za słowem kluczowym AS występuje selekcja danych – tak jak w zwykłych widoku. Stwórzmy więc obiekt CTE:WITH FirstCte (FirstName,LastName) ...
Bazy danych i XML 3675 dni, 20 godzin, 37 minut temu 65 źrodło rozwiń
autor: Dziś potrzebowałem zrobić bardzo nietypową operację – zresetować indeks w tabeli w MS SQLu. I szczerze mówiąc nie sądziłem, że robi się to tak prosto. W tym celu należy użyć komendy:DBCC CHECKIDENT (nazwatabeli, reseed, ostatniindeks) W komendzie podajemy nazwę tabeli, w której chcemy zresetować indeks oraz numer ostatniego indeksu w tabeli. Jeżeli chce się aby automatycznie generowane numery zaczynały się od 1 to należy użyć tego polecenia w następujący sposób:DBCC C...
Bazy danych i XML 3680 dni, 14 godzin, 2 minuty temu 228 źrodło rozwiń
SQL Search. to dodatek do SQL Server Management Studio (SSMS). pozwalający na szybkie i efektywne przeszukiwanie bazy danych. Zadanej frazy szukamy w elementach, takich jak: tabele, widoki, procedury, konstreiny, triggery, funkcje. Wyszukiwanie jest natychmiastowe, ponieważ...
Bazy danych i XML 3682 dni, 2 godziny, 47 minut temu 103 źrodło rozwiń
autor: Niedawno pisałem o pierwszej części mojej serii artykułów na temat OData na polskim portalu MSDN. Przyszła pora na kolejny artykuł, tym razem na portalu TechNet. Dziś pojawiła się pierwsza część artykułu na temat Data-tier Application w SQL Server 2008R2 oraz Visual Studio 2010, który razem z Damianem Widerą napisaliśmy jakiś czas temu. Część pierwsza to spojrzenie administratora bazy danych – czyli Damiana...
Bazy danych i XML 3683 dni, 6 godzin, 18 minut temu 68 źrodło rozwiń
Generowanie Edmx W dzisiejszym wpisie chciałbym wspomnieć o problemie, na który natrafiłem chcąc używać Entity Framework wraz z bazą danych MySQL w Visual Studio 2010 Express. Wybrałem oczywiście standardową ścieżkę – ściągnąłem ze strony MySQL dodatek MySQL Connector. Niestety ku mojemu zaskoczeniu kiedy chciałem dodać połączenie do bazy wśród dostępnych możliwości nie było MySQL...
Bazy danych i XML 3689 dni, 9 godzin, 50 minut temu 153 źrodło rozwiń