23 czerwca 2014

[MSSQL]Użycie CTE - Common Table Expression

CTE – podstawy

CTE to nazwane zapytanie reprezentujące tymczasowy zestaw rekordów definiowany w zasięgu jednego polecenia SELECT, INSERT, UPDATE lub DELETE. Składniowo CTE przypomina podzapytanie w z języka Transact-SQL lub elementy obliczane z języka MDX.
Składnię CTE łatwo rozpoznać po charakterystycznym słowie WITH. Słowo to jest w języku Transact-SQL wykorzystywane między innymi do podawania wskazówek (ang. hint) dla optymalizatora lub do deklarowania przestrzeni nazw XML (klauzula WITH XMLNAMESPACES).

Sposób użycia:

USE AdventureWorks;
GO
WITH MojePierwszeCTE AS (
SELECT Name
FROM HumanResources.Department
)
SELECT * FROM MojePierwszeCTE;

Więcej na temat użycia CTE znajdziesz tutaj.

19 maja 2014

[MSSQL] Tworzenie kalendarza w SQL

Szukając rozwiązania utworzenia kalendarza w SQL-owym MSSQL znalazłem coś takiego:

IF EXISTS (SELECT * FROM information_schema.tables 
WHERE
Table_Name = 'Calendar' AND Table_Type = 'BASE TABLE') BEGIN DROP TABLE [Calendar] END CREATE TABLE [Calendar] ( [CalendarDate] DATETIME ) DECLARE @StartDate DATETIME DECLARE @EndDate DATETIME SET @StartDate = GETDATE() SET @EndDate = DATEADD(d, 365, @StartDate) WHILE @StartDate <= @EndDate BEGIN INSERT INTO [Calendar] ( CalendarDate ) SELECT @StartDate SET @StartDate = DATEADD(dd, 1, @StartDate) END

[MSSQL]Optymalizacja zapytań SQL

Mam nadzieję że spodoba wam się krótki filmik dotyczący optymalizacji SQL dla baz MSSQL prowadzącego przez pana Michała Maca.
Poniżej link do YouTube:

http://youtu.be/lxdDg2F0hfs

06 marca 2014

IIS7 CryptographicException - The system cannot find the file specified.

Gdy pojawia się taki błąd w IIS rozwiązanie jest takie jakie poniżej:


  1. Przejdź do IIS Managera
  2. Następnie do puli aplikacji
  3. kliknij zaawansowane opcje
  4. w sekcji Process Model ustaw User Load Profile na true

04 lutego 2014

Zapis do pliku w PL/SQL

W prosty sposób mozna zapisać do pliku używając pakietu UTL_FILE.

CREATE DIRECTORY test_dir AS 'c:\';
-- CREATE DIRECTORY test_dir AS '/tmp';
DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler := UTL_FILE.FOPEN('test_dir', 'test_file.txt', 'W');
UTL_FILE.PUTF(fileHandler, 'Writing TO a file\n');
UTL_FILE.FCLOSE(fileHandler);
EXCEPTION
WHEN utl_file.invalid_path THEN
raise_application_error(-20000, 'ERROR: Invalid PATH FOR file.');
END;
/