Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Radek Špinka.  značí konec dávky T-SQL příkazů nástrojům SQL serveru, které zajistí její vykonání  není to příkaz T-SQL, je to příkaz sqlcmd,nebo oqsl,

Podobné prezentace


Prezentace na téma: "Radek Špinka.  značí konec dávky T-SQL příkazů nástrojům SQL serveru, které zajistí její vykonání  není to příkaz T-SQL, je to příkaz sqlcmd,nebo oqsl,"— Transkript prezentace:

1 Radek Špinka

2  značí konec dávky T-SQL příkazů nástrojům SQL serveru, které zajistí její vykonání  není to příkaz T-SQL, je to příkaz sqlcmd,nebo oqsl, SQL Server MSC editoru  nesmí být na stejné řádce jako T-SQL příkaz

3  v DB se dá zjistit, dle Serverové proměnné Collation – vyjadřuje řazení znaků, jazykové nastavení  nastavuje se při vytváření nové databáze Vyčtení : SELECT SERVERPROPERTY ('Collation') GO Eg : Czech_CI_AS – kde : - CI = case insensitive, CS = case sensitive - AI = accent insensitive, AS = accent sensitive

4  Pokud je přepínač QUOTED_IDENTIFIER(viz dále) nastaven na OFF lze uzavřít konstanty do obou typů uvozovek(tzn. “” nebo ’’), jinak lze použít jen jednoduché uvozovky  Apostrof v literálu : ‘O’’Reilly’ odpovídá O’Reilly

5  Umožňuje měnit obsah lokální proměnné, u. def. vlastnosti, u. def. veřejné pole,….  Nastavuje specifické informace pro současnou session – přepínače

6  Date and time statements  Locking statements  Miscellaneous statements  Query Execution Statements  ISO Settings statements  Statistics statements  Transactions statements

7  SET DATEFIRST { number }  nastaví první den v týdnu od 1 do 7, kde 1 Pondělí a 7 Neděle, Default je 7 pro U.S English

8 SET DATEFIRST 7; SELECT CAST(' ' AS datetime) AS SelectDate,DATEPART(dw, ' ') AS DayOfWeek; Leden, 1999 je pátek. Protože U.S. English obecně -- používá Neděli jako první den v týdnu, funkce DATEPART vrací hodnotu 6, Protože pátek je šestý den v týdnu -- když týden začíná Nedělí a její hodnota je 1. SET DATEFIRST 3; -- Jelikož středa je nyní považována za první den v týdnu -- DATEPART nyní vrací, že (Pátek) je třetí den v týdnu. SELECT CAST(' ' AS datetime) AS SelectDate,DATEPART(dw, ' ') AS DayOfWeek; GO

9  SET LOCK_TIMEOUT timeout_period  nastaví dobu, po kterou se čeká na uvolnění zámku (ms)

10  SET QUOTED_IDENTIFIER { ON | OFF }  identifikátory mohou být uzavřeny v složených závorkách a literály musí být uzavřeny jednoduchými uvozovkami  ON  INSERT INTO dbo."Test" VALUES (7, 'Text with a single '' quote')  OFF  INSERT INTO dbo.Test VALUES (7, "Text with a single ' quote")

11  ON - Umožnuje vložit explicitní hodnoty do identitních sloupců tabulky  Právě jedna tabulka v session může mít tuto vlastnost nastavenou na ON

12

13  SET PARSEONLY { ON | OFF }  pokud je ON tak se nevykonávají příkazy, jen se provede syntax check

14  SET ANSI_NULLS { ON | OFF }  Specifikuje chování operátorů rovnosti(=) a nerovnosti(<>) dle ISO, když jsou používány na hodnotě NULL

15  Všechna porovnání proti hodnotě NULL se vyhodnotí jako UNKNOWN  Příkaz select, který používá WHERE nazev_sloupce = NULL vrací 0 řádků i když jsou zde null hodnoty ve sloupci nazev_sloupce.  Příkaz select, který používá WHERE nazev_sloupce <> NULL vrací 0 řádků i když jsou zde nonnull hodnoty ve sloupci nazev_sloupce.

16  všechna porovnání proti hodnotě NULL se vyhodnotí jako TRUE pokud je hodnota NULL  operátory rovnosti a nerovnosti se nedrží standartu ISO  Příkaz select, který používá WHERE nazev_sloupce = NULL vrací řádky které mají null hodnoty ve sloupci nazev_sloupce  Příkaz select, který používá WHERE nazev_sloupce <> NULL vrací řádky s nonnull hodnotami ve sloupci nazev_sloupce. Takže, příkaz SELECT s klauzulí WHERE nazev_sloupce <> hodnota_XYZ vrací všechny řádky, které nejsou rovny hodnota_XYZ a nejsou NULL

17  Mějme tabulku test se dvěma sloupci:  ID Int primary key,Nazev nchar(10) NULL.  Naplněnou daty: IDNazev 1Ahoj 2NULL

18  Dotaz : select * from test where Nazev = NULL Výsledek: IDNazev 0 řádků  Dotaz : select * from test where Nazev <> NULL Výsledek: IDNazev 0 řádků

19  Dotaz : select * from test where Nazev = NULL Výsledek: IDNazev 2NULL  Dotaz : select * from test where Nazev <> NULL Výsledek: IDNazev 1Ahoj

20  v budoucí verzi MS SQL Serveru bude tato hodnota vždy ON a pokus o nastavení na OFF vyhodí chybu

21  SET STATISTICS TIME { ON | OFF }  ON – zobrazí počet milisekund potřebných k rozboru, kompilaci, a výkonu každého příkazu v okně Messages

22  SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE } [ ; ]  nastaví úroveň izolace transakcí

23  SELECT GO

24  Na dalších dvou slidech je zobrazeno jak nastavit přepínače pro celý dotaz

25

26

27  Použitá literatura : 


Stáhnout ppt "Radek Špinka.  značí konec dávky T-SQL příkazů nástrojům SQL serveru, které zajistí její vykonání  není to příkaz T-SQL, je to příkaz sqlcmd,nebo oqsl,"

Podobné prezentace


Reklamy Google