Archiwum dla kategorii ‘SQL’

Parametr dla procedury to nie to samo co zmienna w zapytaniu ad-hoc. Wykorzystanie planów wykonania.

2011-10-29

Ten przykład pokaże, że co innego jest napisać i dobrze wykorzystać procedurę składowaną z parametrami, a co innego ten sam kod wykonać jako zapytanie ad-hoc, nawet jeżeli pewne wartości do zapytania będą przekazywane poprzez zmienne. Będziemy pracować w testowej bazie danych: use AdventureWorks2008R2 Zauważ, jak zachowuje się poniższe zapytanie:  SELECT * FROM Sales.SalesOrderHeader  WHERE OrderDate […]

By Rafał Kraik in SQL

Jak pobrać aktualną wersję rekordu z tabeli historycznych zmian

2011-10-29

  Załóżmy, że mamy tabelę o następującej strukturze: CREATE TABLE case_status ( Id INT, CaseId CHAR(10), Status CHAR(10) ) Tabela ma zapamiętywać historyczne zmiany, które zachodziły dla określonych spraw (CaseId). Przyjrzyjmy się takim danym: INSERT INTO case_status VALUES (1,’CASE_A’,’Open’), (2,’CASE_B’,’Open’), (3,’CASE_A’,’Process’), (4,’CASE_C’,’Open’), (5,’CASE_A’,’Close’), (6,’CASE_B’,’Process’) Widać, że sprawa „CASE_A: została kiedyś otwarta (rekord nr 1), potem […]

By Rafał Kraik in SQL

Mniej znane polecenia na SQL Serwerze (CHECKPOINT, KILL, SHUTDOWN)

2011-10-29

Zacznijmy od niegroźnego polecenia CHECKPOINT Powoduje ono uruchomienie procesu CHECKPOINT polegającego na przepisaniu „brudnych stron” z bufora SQL Serwera na dysk. Domyślnie czynność ta wykonuje się sama, bez naszej ingerencji, a wpływ ma na nią opcja serwera 'Recovery Interval’. Jeżeli chcesz aby baza danych po awarii odtwarzała się szybciej to zmniejsz recovery interval. Chceckpointy będą […]

By Rafał Kraik in SQL

Jak uruchomić procedurę zaraz po uruchomieniu usługi SQL Server?

2011-10-28

Można co najmniej na dwa sposoby: Poprzez sp_procoption lub Poprzez SQL Server Agenta Ale po kolei:

By Rafał Kraik in SQL

PHP 4 i PHP 5 na jednym serwerze Apache (PHP 5 jako CGI, z mysql)

2011-10-16

Nie samym Microsoftem programista żyje. Na Linuxie trzeba było zainstalować PHP 5, tak by się zgrał z Apache i MySql. Cały problem polegał jednak na tym, że na serwerze Apache był skonfigurowany z PHP 4 uruchamianym jako moduł. Na dodatek PHP 4 nie mogło być zamienione na PHP 5, bo były pewne strony, które wymagały […]

Jak wybrać co drugi rekord (SELECT co drugi rekord)

2011-10-15

Jeżeli trzeba wyświetlić co drugi rekord to trzeba sobie odpowiedzieć na pytanie co to znaczy co drugi rekord! Załóżmy, że zamierzam wyświetlić co drugiego pracownika z tabeli Person.Person ze względu na numer pracownika (BusinessEntietyID). Załóżmy więc, że układam wszystkich pracowników wg ich ID.  Wybór co drugiego jest teraz już prosty z algorytmicznego punktu widzenia. Numerujemy […]

Jak sprawić aby nawet administrator lub właściciel bazy danych nie mógł jej usunąć?

2011-10-10

Bezpośrednio będzie to trudne do ustawienia, ale jeżeli zaprząc do pracy trigger DDL, to będzie łatwiej. Rozważ następujący trigger uruchamiany podczas usuwania jakiejkolwiek bazu danych: CREATE TRIGGER tr_drop_db ON ALL SERVER FOR DROP_DATABASE AS BEGIN PRINT 'Dropping database is not allowed. Contact me ……..’ ROLLBACK END