Archiwum dla kategorii ‘SQL’

Dlaczego nie można indeksować po polu varchar(max)

2011-08-14

Zacznijmy od tego co to jest varchar(max). Dawno temu, w wersji SQL 2000 kiedy chciałeś umieścić w tabeli duże pole z zawartością tekstową mogłeś skorzystać z pola typu text. W Accessie zaś odpowiednikiem varchar(max) jest typ nota. Zazwyczaj definiując tabelę i jej kolumny, określasz rozmiar przechowywanych danych oraz sposób kodowania np varchar(20) lub nvarchar(20), kiedy […]

By Rafał Kraik in SQL

Wykonanie czynności dla wielu tabel w bazie danych lub dla wielu baz danych

2011-08-13

Zdarza się że pewną czynność (zazwyczaj administracyjną) musisz wykonać względem wszystkich lub kilku wybranych tabel w bazie danych. Administrator bazy danych marzy wtedy o poleceniu rodem z C# np. foreach(table in sys.tables) { EXECUTE sp_spaceused table } Niestety tego nie ma… Można się posiłkować kursorem lub tworzyć własne procedury, albo… użyć nieudokumentowanej procedury sp_MSforeachtable !

By Rafał Kraik in SQL

Kiedy stosować indeks klustrowany, a kiedy nieklustrowany (Clustered Index vc Nonclustered Index)

2011-07-17

W kluczu clustered w poziomie liści znajdują się wszystkie dane rekordu (poza danymi typu nvarchar, binary itp.) Takie podejście ma jedną wielką zaletę. Kiedy zapytanie ma wyszukać rekord, to kiedy już znajdzie ten rekord, to ma „pod ręką” wszystkie potrzebne dane. Na dodatek indeks clustered, jeżeli jeszcze się nie pofragmentował na dysku, ma rekordy ułożone […]

By Rafał Kraik in SQL

Uczyć się w wakacje!? Tak i to z podwójną korzyścią: masz wiedzę i iPad-a!

2011-07-08

Wakacje to raczej czas kiedy nie myślisz o nauce. Ale to też pora, kiedy firmy szkoleniowe organizują najatrakcyjniejsze promocje szkoleniowe. Może, więc warto pomyśleć o nauce w wakacje, tym bardziej, że tym razem za udział w autoryzowanym szkoleniu Microsoft dostajesz iPad-a!  Powiedzmy sobie szczerze – opalenizna szybko zejdzie, a iPad i wiedza zostaniena dłużej! Promocję organizuje […]

Jak ustawić kolumnę IDENTITY tak, by numerować od poczatku?

2011-06-29

Gdy tabela posiada kolumnę określona jako IDENTITY, to wartości dla tej kolumny sa generowane automatycznie. Czasami jednak po pewnych operacjach na tabeli chciałbyś uruchomić numerowanie IDENTITY od poczatku. Jak to zrobić?  Zobacz przykład:

By Rafał Kraik in SQL

Trigger INSTEAD OF INSERT. Problem ze wstawieniem rekordu do widoku wykorzystującego JOIN

2011-06-28

Problem: administrator musi wypełnić tabele opisującą komputery w jego sieci. Aplikacja została tak zaprojektowana, że w bazie danych istnieją 2 tabele.  Na dodatek do obu tabel trzeba wpisać ten sam ID (relacja 1 do 1). Łatwiej byłoby zrobić to poprzez widok, ale z tym widokiem nie jest tak łatwo. SQL Serwer nie potrafi wstawiać rekordów […]

By Rafał Kraik in SQL

Na jakim koncie działają kroki zadań w SQL Server Agencie?

2011-06-20

Kiedy masz do automatyzowania pewne powtarzające się działanie, to dostajesz do dyspozycji SQL Server Agenta. Usługa ta świetnie się sprawdza, jeżeli trzeba regularnie sprawdzać stan bazy danych, wykonać backup lub regularnie uruchamiać procesy eksportu i importu. Pewną bolączką może jednak być określenie poprawnych uprawnień tak, aby Agent z jednej strony mógł wykonać to, co ma […]

By Rafał Kraik in SQL