Kiedy pracujesz z bazą danych sql to od czasu do czasu musisz podejrzeć jak został zbudowany pewien obiet, z jakich kolumn składa się widok, jaki jest kod procedury czy też funkcji. Możesz oczywiście kliknąć prawym przyciskiem myszy na znalezionych obiektach w object explorerze w sql server management studio i wybrać polecenie „view definition” lub „script object […]
Archiwum dla kategorii ‘SQL’
Podglądanie definicji obiektów w SQL
Błedy konwersji typów SQL, zaokrąglenia, obięcia, przekroczenia zakresu typu
Programując w SQL zastanawiasz się może czasami jaki typ wybrać dla zmiennych lub kolumn w tabelach. SQL Server sam podejmuje czasami decyzję o potrzebie wykonania pewnych konwersji i jeżeli pozwolisz mu zadzaiłać wg swoich algorytmów, to możesz dojść do błędów, które są trudne do zdebuggowania. Przedstawię tutaj kilka takich przykładów: Źle: DECLARE @smallValue smallint SET […]
Dlaczego nie działa INSERT!? Dlaczego nie mogę zainicjować zadeklarowanej zmiennej!?
Do tabeli chciałem dzisiaj wstawić kilka rekordów 'za jednym zamachem’. Można to zrobić poprzez polecenie: INSERT Countries VALUES (’EN’, 'England’,1), (’PL’, 'Poland’,1), (’G’,’Germany’,1), (’CDN’,’Canada’,2), (’USA’,’USA’,2) Tymczasem pojawia się błąd: Msg 102, Level 15, State 1, Line 2 Incorrect syntax near ’,’. Błędu nie widzę, albo jestem ślepy ale przepisanie polecenia na pojedyncze INSERT pomogło. Idziemy […]
Jak W SQL utworzyć z rekordów listę rodzielaną przecinkami CSV? Wykorzystanie typu tablicowego
Załóżmy, że pracujemy z tabelą zawierającą jakieś symbole, które mają np zostać załadowane do kontrolki typu listbox, tak by użytkownik mógł wybrać jeną z pozycji za pomocą myszki. Często tego rodzaju czynność wiąże się z przekształceniem listy rekordów w jedną zmienną zawierającą wypisane symbole porozdzielane za pomocą przecinka, średnika lub innego znaku w notacji popularnie […]
CHECK i problem z NULL
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
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?
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?





























