Stałe (Transact-SQL)
Dotyczy:sql Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w usłudze Microsoft Fabric
Stała, znana również jako literał lub wartość skalarna, jest symbolem reprezentującym określoną wartość danych. Format stałej zależy od typu danych reprezentowanej przez nią wartości.
Nuta
Termin
Stałe ciągów znaków
Stałe ciągów znaków są ujęte w znaki pojedynczego cudzysłowu i zawierają znaki alfanumeryczne (a
-z
, A
-Z
i 0
-9
) oraz znaki specjalne, takie jak wykrzyknik (!
), na znak (@
) i znak numeru (#
). Stałe ciągów znaków są przypisywane domyślne sortowanie bieżącej bazy danych. Jeśli jest używana klauzula COLLATE, konwersja na domyślną stronę kodu bazy danych nadal odbywa się przed konwersją na sortowanie określone przez klauzulę COLLATE. Ciągi znaków wpisane przez użytkowników są oceniane za pośrednictwem strony kodowej komputera i są tłumaczone na domyślną stronę kodową bazy danych, jeśli jest to wymagane.
Nuta
Gdy sortowania z włączoną obsługą protokołu UTF8 jest określona przy użyciu klauzuli COLLATE, konwersja na domyślną stronę kodową bazy danych jest nadal wykonywana przed konwersją na sortowanie określone przez klauzulę COLLATE. Konwersja nie jest wykonywana bezpośrednio w określonym sortowaniu z obsługą unicode. Aby uzyskać więcej informacji, zobacz ciąg Unicode.
Jeśli dla połączenia została ustawiona opcja QUOTED_IDENTIFIER, parametry znaków można również ująć w podwójny cudzysłów, ale sterownik Microsoft OLE DB dla programu SQL Server i sterownik odBC dla programu SQL Server automatycznie używać SET QUOTED_IDENTIFIER ON
. Zalecamy używanie pojedynczych cudzysłowów.
Jeśli ciąg znaków ujęta w pojedynczy cudzysłów zawiera osadzony cudzysłów, reprezentuje osadzony pojedynczy cudzysłów z dwoma pojedynczymi cudzysłowami. Nie jest to wymagane w ciągach osadzonych w podwójnym cudzysłowie.
Poniżej przedstawiono przykłady ciągów znaków:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
Puste ciągi są reprezentowane jako dwa pojedyncze znaki cudzysłowu z niczym między. W trybie zgodności 6.x pusty ciąg jest traktowany jako pojedyncze miejsce.
Stałe ciągów znaków obsługują ulepszone sortowania .
Nuta
Stałe znaków większe niż 8000 bajtów są wpisywane jako varchar(max) danych.
Ciągi Unicode
Ciągi Unicode mają format podobny do ciągów znaków, ale są poprzedzone identyfikatorem N
(N oznacza język narodowy w standardzie SQL-92).
Ważny
Prefiks N
musi być wielkimi literami.
Na przykład 'Michél'
jest stałą znaku, a N'Michél'
jest stałą Unicode. Stałe Unicode są interpretowane jako dane Unicode i nie są oceniane przy użyciu strony kodowej. Stałe Unicode mają sortowanie. To sortowanie kontroluje przede wszystkim porównania i czułość wielkości liter. Stałe Unicode są przypisywane domyślne sortowanie bieżącej bazy danych. Jeśli jest używana klauzula COLLATE, konwersja na sortowanie domyślne bazy danych nadal odbywa się przed konwersją na sortowanie określone przez klauzulę COLLATE. Aby uzyskać więcej informacji, zobacz Sortowanie i obsługa unicode.
Stałe ciągów Unicode obsługują rozszerzone sortowania.
Nuta
Stałe Unicode większe niż 8000 bajtów są wpisywane jako nvarchar(max) danych.
Stałe binarne
Stałe binarne mają prefiks 0x
i są ciągiem liczb szesnastkowych. Nie są one ujęte w cudzysłów.
Poniżej przedstawiono przykłady ciągów binarnych:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Nuta
Stałe binarne większe niż 8000 bajtów są wpisywane jako varbinary(max) danych.
Stałe logiczne
Stałe wartości logiczne (bit) są reprezentowane przez liczby 0
lub 1
, i nie są ujęte w cudzysłów. Jeśli jest używana liczba większa niż 1
, jest konwertowana na 1
.
Stałe daty i godziny
stałe daty/godziny są reprezentowane przy użyciu wartości daty znaku w określonych formatach, ujęte w pojedyncze cudzysłowy.
Poniżej przedstawiono przykłady stałych datetime:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Przykłady stałych daty/godziny to:
'14:30:24'
'04:24 PM'
Stałe całkowite
Liczba całkowita (int) stałe są reprezentowane przez ciąg liczb, które nie są ujęte w cudzysłów i nie zawierają punktów dziesiętnych.
Poniżej przedstawiono przykłady stałych int:
1894
2
Stałe dziesiętne
stałe dziesiętne są reprezentowane przez ciąg liczb, które nie są ujęte w znaki cudzysłowu i zawierają punkt dziesiętny.
Poniżej przedstawiono przykłady stałych dziesiętnych:
1894.1204
2.0
Stałe zmiennoprzecinkowe
zmiennoprzecinkowe i rzeczywiste stałe są reprezentowane przy użyciu notacji naukowej.
Poniżej przedstawiono przykłady wartości zmiennoprzecinkowych lub rzeczywistych:
101.5E5
0.5E-2
Stałe pieniężne
pieniądze stałe są reprezentowane jako ciąg liczb z opcjonalnym punktem dziesiętnym i opcjonalnym symbolem waluty jako prefiksem. pieniądze stałe nie są ujęte w cudzysłów.
Program SQL Server nie wymusza żadnych reguł grupowania, takich jak wstawianie przecinka (,
) co trzy cyfry w ciągach reprezentujących pieniądze.
Nuta
Przecinki są ignorowane w dowolnym miejscu literału ciągu, który jest rzutowane na pieniądze typ danych.
Poniżej przedstawiono przykłady stałych pieniędzy:
$12
$542023.14
$-23
Stałe identyfikatora GUID
uniqueidentifier stałe są ciągiem reprezentującym identyfikator GUID. Można je określić w formacie znaków lub ciągu binarnego.
Oba poniższe przykłady określają ten sam identyfikator GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Określanie liczb ujemnych i dodatnich
Aby wskazać, czy liczba jest dodatnia, czy ujemna, zastosuj operatory +
lub -
jednoargumentowe do stałej liczbowej. Spowoduje to utworzenie wyrażenia liczbowego reprezentującego podpisaną wartość liczbową. Stałe liczbowe używają dodatnich, gdy operatory jednoargumentowe +
lub -
nie są stosowane.
Wyrażenia z podpisem
+145345234
-2147483648
Wyrażenia dziesiętnych ze znakiem
+145345234.2234
-2147483648.10
Wyrażenia zmiennoprzecinkowe ze znakiem
+123E-3
-12E5
Podpisane wyrażenia
-$45.56
+$423456.99
Ulepszone sortowania
Aparat bazy danych obsługuje stałe znaków i ciągów Unicode, które obsługują rozszerzone sortowania. Aby uzyskać więcej informacji, zobacz klauzulę COLLATE.
Powiązana zawartość
- Typy danych (Transact-SQL)
- Expressions (Transact-SQL)
- Operatory (Transact-SQL)
- Obsługa sortowania i Unicode
- pierwszeństwo sortowania