Archiwum dla kategorii ‘SQL’

MySQL – baza danych z polskimi znakami

2011-02-28

Producent oprogramowania zażyczył sobie, aby baza danych mySQL pracowała z kodowaniem znaków cp1250. Polecenie zakładające bazę danych pracującą domyślnie z zestawem znaków w CP 1250 wygląda następująco: CREATE DATABASE faktury DEFAULT CHARACTER SET cp1250;

Jak przekazać tabelę jako parametr do funkcji lub procedury SQL?

2011-02-20

Może się zdarzyć, że procedura składowana ma pracować na danych znajdujących się w zmiennej będącej tabelą. Taką tabelę można przekazać do funkcji UDF lub  procedury składowanej jako parametr. Najpierw utworzymy specjalny TYP. Ten typ definiuje zmienne typu TABLE. Potem deklarujemy zmienną tego typu i już można wstawiać do niej rekordy i wyświetlać je: CREATE TYPE […]

By Rafał Kraik in SQL

Jaka jest różnica między SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED a Query Hint NOLOCK?

2011-02-20

Na poziomie połączenia z serwerem SQL można zadeklarować tzw. Transaction Isolation Level. Zależnie od wybranego poziomu transakcje dokonują blokad przy odczycie rekordów lub nie i czytając uwzględniają albo ignorują inne nałożone na rekordy blokady. Najsłabszym poziomem izolacji transakcji jest READ UNCOMMITTED. Jeżeli w swoim skrypcie na początku zapiszesz: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; GO […]

By Rafał Kraik in SQL

Jak znaleźć w zapytaniu SQL drugi rekord z kolei w rankingu?

2011-02-19

Wiele przykładów pokazuje największą wartość albo najwcześniejszą datę, albo najniższy wskaźnik itp. A jak odnaleźć drugą wartość!? Jak ustalić który produkt był w ramach jednego dużego zakupu kupowany jako drugi? Jak znaleźć drugą co do wartości wielkość zakupu?

By Rafał Kraik in Humor, SQL

Tutorial – Działający przykład Service Brokera (MS SQL 2008)

2011-02-19

Serwis broker pozwala na pewne przesyłanie danych między różnymi bazami danych, instancjami, czy nawet serwerami. Poszerza on więc możliwości serwera SQL o możliwość niezawodnego przekazywania informacji poza serwer. Samo przekazywanie danych opiera się o odpowiednie protokoły sieciowe i dostęp uzyskany do ENDPOINT-ów na serwerach. W poniższym przykładzie zademonstruję działanie Service Brokera w obrębie jednej tylko […]

By Rafał Kraik in SQL

Wyszukanie pierwszego i kolejnych wystąpień znaku w napisie w T-SQL

2011-02-19

Kursant zapytał mnie dziś: Jak wyświetlić w SQL pozycje wszystkich znaków ‘-‘ w polu tabeli. Czyli jeżeli mam napis ABC-DEF-GHIJ-KL, to chcielibyśmy znaleźć pozycję znaku ‘-‘  w danym napisie, a następnie znaleźć jego dalsze wsytąpienia: 4,8, 13. Pierwsze próby opierały się na składaniu funkcji CHARINDEX: SELECT CHARINDEX(’-’,’tekst-z-myslnikami’, 1) AS x1, CHARINDEX(’-’,’tekst-z-myslnikami’, CHARINDEX(’-’,’tekst-z-myslnikami’, 1)+1) AS x2

By Rafał Kraik in SQL

Opcje dostępu do bazy danych dla użytkowników SINGLE_USER, MULTI_USER, RESTRICTED_USER (db user access options)

2011-02-13

Opcje dostępu użytkowników do bazy danych kontrolują, kto może korzystać z bazy danych. Używa się ich zwłaszcza podczas wykonywania prac administracyjnych na bazach danych. Ot po prostu, kiedy chcesz coś zrobić, a się nie da, bo są zalogowani inni użytkownicy, masz szansę ich wyrzucić i zostać jedynym władcą swojej bazy danych. Ale po kolei. Owe […]

By Rafał Kraik in SQL