Konstanty (Transact-SQL)
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform Platform System (PDW)
databáze SQL v Microsoft Fabric
Konstanta, označovaná také jako literál nebo skalární hodnota, je symbol, který představuje konkrétní datovou hodnotu. Formát konstanty závisí na datovém typu hodnoty, kterou představuje.
Poznámka
Pojem konstantní při vývoji aplikací a koncept konstanty v Transact-SQL (T-SQL) není stejný. Neexistuje žádný konkrétní způsob, jak nastavit globální statickou hodnotu v jazyce T-SQL. Konstanty v jazyce T-SQL jsou ekvivalentem řetězcových hodnot literálů.
Konstanty řetězce znaků
Konstanty řetězce znaků jsou uzavřeny v jednoduchých uvozovkách a obsahují alfanumerické znaky (a
-z
, A
-Z
a 0
-9
) a speciální znaky, jako je vykřičník (!
), znak (@
) a znak čísla (#
). Konstanty řetězce znaků jsou přiřazeny výchozí kolaci aktuální databáze. Pokud se používá klauzule COLLATE, převod na výchozí znakovou stránku databáze se stále provádí před převodem na kolaci určenou klauzulí COLLATE. Řetězce znaků zadané uživateli se vyhodnocují prostřednictvím znakové stránky počítače a v případě potřeby se přeloží na výchozí znakovou stránku databáze.
Poznámka
Při kolace s podporou UTF8 je zadána pomocí klauzule COLLATE, převod na výchozí znakovou stránku databáze se stále děje před převodem na kolaci určenou klauzulí COLLATE. Převod se neprovedá přímo na zadanou kolaci s podporou Unicode. Další informace naleznete v tématu řetězec Unicode.
Pokud je pro připojení nastavena možnost QUOTED_IDENTIFIER vypnuta, mohou být řetězce znaků také uzavřeny v uvozovkách, ale ovladač Microsoft OLE DB pro SQL Server a ovladač ODBC pro SQL Server automaticky používat SET QUOTED_IDENTIFIER ON
. Doporučujeme použít jednoduché uvozovky.
Pokud řetězec znaku uzavřený v jednoduchých uvozovkách obsahuje vloženou uvozovku, představuje vloženou jednoduchou uvozovku se dvěma jednoduchými uvozovkami. To se nevyžaduje v řetězcích vložených do dvojitých uvozovek.
Tady jsou příklady řetězců znaků:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
Prázdné řetězce jsou reprezentovány jako dvě jednoduché uvozovky, mezi kterými není nic. V režimu kompatibility 6.x se prázdný řetězec považuje za jednu mezeru.
Znakové řetězcové konstanty podporují rozšířené kolace .
Poznámka
Znakové konstanty větší než 8 000 bajtů jsou zadány jako varchar(max) data.
Řetězce Unicode
Řetězce Unicode mají formát podobný řetězcům znaků, ale mají předponu identifikátor N
(N znamená národní jazyk ve standardu SQL-92).
Důležitý
Předpona N
musí být velká písmena.
Například 'Michél'
je znaková konstanta, zatímco N'Michél'
je konstanta Unicode. Konstanty Unicode se interpretují jako data Unicode a nevyhodnocují se pomocí znakové stránky. Konstanty Unicode mají kolaci. Tato kolace primárně řídí porovnání a citlivost na malá a velká písmena. Konstanty Unicode jsou přiřazeny výchozí kolaci aktuální databáze. Pokud se použije klauzule COLLATE, převod na výchozí kolaci databáze se stále provádí před převodem na kolaci určenou klauzulí COLLATE. Další informace naleznete v tématu Kolace a Podpora kódování Unicode.
Řetězcové konstanty Unicode podporují rozšířené kolace.
Poznámka
Konstanty Unicode větší než 8 000 bajtů jsou zadány jako nvarchar(max) data.
Binární konstanty
Binární konstanty mají předponu 0x
a jsou řetězcem šestnáctkových čísel. Nejsou uzavřené do uvozovek.
Tady jsou příklady binárních řetězců:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Poznámka
Binární konstanty větší než 8 000 bajtů jsou zadány jako varbinary(max) data.
Logické konstanty
Logické konstanty (bit) jsou reprezentovány čísly 0
nebo 1
a nejsou uzavřené do uvozovek. Pokud se použije číslo větší než 1
, převede se na 1
.
Konstanty data a času
hodnoty datetime konstanty jsou reprezentovány pomocí hodnot kalendářních dat znaků v konkrétních formátech uzavřených v jednoduchých uvozovkách.
Tady jsou příklady konstant datetime:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Příklady konstant data a času jsou:
'14:30:24'
'04:24 PM'
Celočíselné konstanty
Celočíselné konstanty (int) jsou reprezentovány řetězcem čísel, která nejsou uzavřena v uvozovkách a neobsahují desetinné čárky. int konstanty musí být celá čísla; nemůžou obsahovat desetinná místa.
Tady jsou příklady konstant int:
1894
2
Desetinné konstanty
desetinné konstanty jsou reprezentovány řetězcem čísel, která nejsou uzavřena v uvozovkách a obsahují desetinnou čárku.
Tady jsou příklady desetinných konstant:
1894.1204
2.0
Konstanty s plovoucí desetinou čárkou
plovoucí a reálné konstanty jsou reprezentovány pomocí vědeckého zápisu.
Tady jsou příklady plovoucí nebo skutečných hodnot:
101.5E5
0.5E-2
Konstanty peněz
peníze konstanty jsou reprezentovány jako řetězec čísel s volitelnou desetinnou čárkou a volitelným symbolem měny jako předponou. peníze konstanty nejsou uzavřeny v uvozovkách.
SQL Server nevynucuje žádný druh pravidel seskupení, jako je vložení čárky (,
) každé tři číslice v řetězcích, které představují peníze.
Poznámka
Čárky jsou ignorovány kdekoli v řetězcovém literálu, který je přetypován na peníze datový typ.
Tady jsou příklady konstant peněz:
$12
$542023.14
$-23
Konstanty GUID
uniqueidentifier konstanty představují řetězec představující identifikátor GUID. Dají se zadat ve znakovém nebo binárním řetězcovém formátu.
Oba následující příklady určují stejný identifikátor GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Určení záporných a kladných čísel
Chcete-li určit, zda je číslo kladné nebo záporné, použijte +
nebo -
unární operátory na číselnou konstantu. Tím se vytvoří číselný výraz, který představuje podepsanou číselnou hodnotu. Číselné konstanty se používají kladně, pokud se nepoužijí +
nebo -
unární operátory.
Podepsané výrazy int:
+145345234
-2147483648
Podepsané desetinné výrazy:
+145345234.2234
-2147483648.10
Podepsané plovoucí výrazy:
+123E-3
-12E5
Podepsané výrazy peněz:
-$45.56
+$423456.99
Vylepšené kolace
Databázový stroj podporuje znakové a unicode řetězcové konstanty, které podporují rozšířené kolace. Další informace najdete v klauzuli COLLATE.
Související obsah
- datové typy (Transact-SQL)
- výrazy (Transact-SQL)
- operátory (Transact-SQL)
- podpora kolace a kódování Unicode
- priorita kolace