Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Radek Špinka Přepínače MSSQL výběr
2
GO 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
Case sensitivita 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
Uvozovky 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
SET 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
Dělení Přepínačů Date and time statements Locking statements
Miscellaneous statements Query Execution Statements ISO Settings statements Statistics statements Transactions statements
7
Date and time statements
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
Příklad DATEFIRST SET DATEFIRST 7;
SELECT CAST(' ' AS datetime) AS SelectDate ,DATEPART(dw, ' ') AS DayOfWeek; -- 1. 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. GO
9
Locking statements SET LOCK_TIMEOUT timeout_period
nastaví dobu, po kterou se čeká na uvolnění zámku (ms)
10
Miscellaneous statements
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
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF } 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
Příklad IDENTITY_INSERT
13
Query Execution Statements
SET PARSEONLY { ON | OFF } pokud je ON tak se nevykonávají příkazy, jen se provede syntax check
14
ISO Settings statements
SET ANSI_NULLS { ON | OFF } Specifikuje chování operátorů rovnosti(=) a nerovnosti(<>) dle ISO, když jsou používány na hodnotě NULL
15
SET ANSI_NULLS ON 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
SET ANSI_NULLS OFF 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
Příklad ANSI_NULLS Mějme tabulku test se dvěma sloupci:
ID Int primary key,Nazev nchar(10) NULL. Naplněnou daty: ID Nazev 1 Ahoj 2 NULL
18
Příklad SET ANSI_NULLS ON
Dotaz : select * from test where Nazev = NULL Výsledek: ID Nazev 0 řádků Dotaz : select * from test where Nazev <> NULL Výsledek: ID Nazev 0 řádků
19
Příklad SET ANSI_NULLS OFF
Dotaz : select * from test where Nazev = NULL Výsledek: ID Nazev 2 NULL Dotaz : select * from test where Nazev <> NULL Výsledek: ID Nazev 1 Ahoj
20
SET ANSI_NULLS { ON | OFF }
v budoucí verzi MS SQL Serveru bude tato hodnota vždy ON a pokus o nastavení na OFF vyhodí chybu
21
Statistics statements
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
Transactions statements
SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE } [ ; ] nastaví úroveň izolace transakcí
23
Čtení nastavení Přepínačů
SELECT GO
24
Nastavení Query Na dalších dvou slidech je zobrazeno jak nastavit přepínače pro celý dotaz
27
Konec Použitá literatura :
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.