Udostępnij za pośrednictwem


Stałe (Transact-SQL)

Dotyczy:sql ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 w tworzeniu aplikacji oraz pojęcie stałej Transact-SQL (T-SQL) nie są takie same. Nie ma konkretnego sposobu ustawiania globalnej wartości statycznej w języku T-SQL. Stałe w języku T-SQL są odpowiednikami wartości literału ciągu.

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-Zi 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. stałe muszą być liczbami całkowitymi; nie mogą zawierać miejsc 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 int:

+145345234
-2147483648

Wyrażenia dziesiętnych ze znakiem :

+145345234.2234
-2147483648.10

Wyrażenia zmiennoprzecinkowe ze znakiem :

+123E-3
-12E5

Podpisane wyrażenia pieniędzy:

-$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.