1 / 27

Přepínače MSSQL výběr

Radek Špinka. Přepínače MSSQL výběr. 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. GO.

austin
Télécharger la présentation

Přepínače MSSQL výběr

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Radek Špinka Přepínače MSSQLvýběr

  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 GO

  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 = accentinsensitive, AS = accent sensitive Case sensitivita

  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 Uvozovky

  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 SET

  6. Dateandtimestatements Lockingstatements Miscellaneousstatements QueryExecutionStatements ISO Settingsstatements Statisticsstatements Transactionsstatements Dělení Přepínačů

  7. SET DATEFIRST { number | @number_var } 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 Dateandtimestatements

  8. SET DATEFIRST 7; SELECTCAST('1999-1-1' AS datetime) ASSelectDate ,DATEPART(dw, '1999-1-1') ASDayOfWeek; -- 1. Leden, 1999 je pátek. Protože U.S. English obecně -- používá Neděli jako první den v týdnu, funkce DATEPART 1999-1-1 -- 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 1999-1-1 (Pátek) je třetí den v týdnu. SELECT CAST('1999-1-1'AS datetime) ASSelectDate ,DATEPART(dw, '1999-1-1') ASDayOfWeek; GO Příklad DATEFIRST

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

  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") Miscellaneousstatements

  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 SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

  12. Příklad IDENTITY_INSERT

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

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

  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. SET ANSI_NULLS ON

  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_XYZvracívšechnyřádky, kterénejsourovnyhodnota_XYZ a nejsou NULL SET ANSI_NULLS OFF

  17. Mějme tabulku test se dvěma sloupci: ID Intprimarykey,Nazevnchar(10) NULL. Naplněnou daty: Příklad ANSI_NULLS

  18. Dotaz : select * from test whereNazev= NULLVýsledek:ID Nazev0 řádků Dotaz : select * from test whereNazev<> NULLVýsledek:ID Nazev0 řádků Příklad SET ANSI_NULLS ON

  19. Dotaz : select * from test whereNazev= NULLVýsledek:ID Nazev2 NULL Dotaz : select * from test whereNazev<> NULLVýsledek:ID Nazev1 Ahoj Příklad SET ANSI_NULLS OFF

  20. v budoucí verzi MS SQL Serveru bude tato hodnota vždy ON a pokus o nastavení na OFF vyhodí chybu SET ANSI_NULLS { ON | OFF }

  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 Statisticsstatements

  22. SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE }[ ; ] nastaví úroveň izolacetransakcí Transactionsstatements

  23. SELECT @@Option_NameGO Čtení nastavení Přepínačů

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

  25. Použitá literatura : http://msdn.microsoft.com Konec

More Related