Archiwum dla kategorii ‘SQL’

CHECK i problem z NULL

2011-09-14

CHECK pozwala określić, że w danej kolumnie ma być zapisywana tylko taka wartość, która spełnia określony warunek, np długość napisu większa niż 10. Wydaje się, że taki zapis jest poprawny: CREATE TABLE Test (ID INT PRIMARY KEY CHECK, Name VARCHAR(20) CONSTRAINT Test_Name5 CHECK (LEN(NAME)>5) ) GO Zobacz jak zachowają sie takie polecenia: INSERT INTO Test […]

Opcja NOCHECK przy zmianie CONSTRAINA i zaufanie do niego

2011-09-14

O tworzeniu CONSTRAIN-ów na przykładzie CHECK-a opowiadałem tutaj No cóż, dodając CHECK do tabeli, która zawiera już dane możesz doświadczyć pewnych problemów: ALTER TABLE TEST ADD CONSTRAINT Test_Value CHECK (Value>20) Msg 547, Level 16, State 0, Line 1 The ALTER TABLE statement conflicted with the CHECK constraint „Test_Value”. The conflict occurred in database „Test”, table […]

Jak zmienić CHECK na tabeli czyli jak wykonać ALTER CHECK?

2011-09-14

CHECK pozwala określić, że w danej kolumnie ma być zapisywana tylko taka wartość, która spełnia określony warunek, np wprowadzona liczba ma być większa niż 10. CREATE TABLE Test (ID INT IDENTITY PRIMARY KEY, Value INT CONSTRAINT Test_Value CHECK (Value>10) ) GO Jak można zmienić zdefiniowany tu warunek, jeżeli np będziesz wymagał aby Value było >20?

By Rafał Kraik in SQL

Tabela przestawna w Transact SQL. Tabele przestawne SQL

2011-09-09

Jeśli tutaj zajrzałeś, to z całą pewnością wiesz już, co to jest tabela przestawna. Jeśli tego nie wiesz, to proponuję nie czytać tego artykułu, tylko najpierw poszukać informacji o budowaniu tabel przestawnych np. w programie Excel. Tutaj pokażę tylko jak zbudować tabele przestawne z wykorzystaniem języka T-SQL. Naszym celem jest zbudowanie tabeli prezentującej średni koszt […]

By Rafał Kraik in SQL

SQL Jak zmienić nazwę tabeli przy pomocy kodu?

2011-09-06

Prosto. Jeżeli masz MS SQL to użyj procedury sp_rename: EXEC sp_rename stara_nazwa_tabeli, nowa_nazwa_tabeli Jeżeli korzystasz z MySQL, to jeszcze prościej: ALTER TABLE stara_nazwa_tabeli RENAME TO nowa_nazwa_tabeli Jeżeli zmieniasz nazwę obiektu, z którego korzystają inne procedury, nie zapomnij ich zrekompilować. Stare plany kompilacji mogą odnosić się do starej nazwy tabeli!

By Rafał Kraik in SQL

Varchar(Max) – jeśli nie jest za duży może być zapisany w strukturze rekordu

2011-08-15

varchar(max) to typ pozwalający zachowywać w bazie danych 2^31 bajtów danych. Ponieważ rekordy znajdują się na stronach, a rozmiar strony to 8 KB, to takie dane trzeba przechowywać poza rekordem. W rekordzie zajmuje się jedynie 16 bitów na wskaźnik. Istnieje opcja pozwalająca przechowywać dane typu varchar(max) na stronie z rekordem o ile oczywiście w danej […]

By Rafał Kraik in 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