Dela via


Constants (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Förhandsversion av Microsoft Fabric

En konstant, även kallad literal eller ett skalärt värde, är en symbol som representerar ett specifikt datavärde. Formatet för en konstant beror på datatypen för det värde som den representerar.

Note

Termen konstant i programutveckling och begreppet konstant i Transact-SQL (T-SQL) är inte detsamma. Det finns inget specifikt sätt att ange ett globalt statiskt värde i T-SQL. Konstanter i T-SQL motsvarar strängliterala värden.

Teckensträngskonstanter

Teckensträngskonstanter omges av enkla citattecken och innehåller alfanumeriska tecken (a-z, A-Zoch 0-9) och specialtecken, till exempel utropstecken (!), vid tecknet (@) och taltecknet (#). Teckensträngskonstanter tilldelas standardsortering av den aktuella databasen. Om COLLATE-satsen används sker konverteringen till databasens standardkodsida fortfarande före konverteringen till sortering som anges av COLLATE-satsen. Teckensträngar som skrivs av användare utvärderas via datorns kodsida och översätts till databasens standardkodsida om det behövs.

Note

När en UTF8-aktiverad sortering anges med COLLATE-satsen sker konverteringen till databasens standardkodsida fortfarande innan konverteringen till sorteringen som anges av COLLATE-satsen. Konverteringen görs inte direkt till den angivna Unicode-aktiverade sorteringen. Mer information finns i Unicode-sträng.

Om alternativet QUOTED_IDENTIFIER har ställts in av för en anslutning kan teckensträngar också omges av dubbla citattecken, men Microsoft OLE DB-drivrutin för SQL Server och ODBC-drivrutin för SQL Server automatiskt använda SET QUOTED_IDENTIFIER ON. Vi rekommenderar att du använder enkla citattecken.

Om en teckensträng som omges av enkla citattecken innehåller ett inbäddat citattecken representerar du det inbäddade enkla citattecknet med två enkla citattecken. Detta krävs inte i strängar som är inbäddade inom dubbla citattecken.

Följande är exempel på teckensträngar:

'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"

Tomma strängar representeras som två enkla citattecken utan något däremellan. I 6.x-kompatibilitetsläge behandlas en tom sträng som ett enda blanksteg.

Teckensträngskonstanter stöder utökade sortering.

Note

Teckenkonstanter större än 8 000 byte skrivs som varchar(max) data.

Unicode strings

Unicode-strängar har ett format som liknar teckensträngar, men är prefix med en N identifierare (N står för National Language i SQL-92-standarden).

Important

Prefixet N måste vara versaler.

'Michél' är till exempel en teckenkonstant medan N'Michél' är en Unicode-konstant. Unicode-konstanter tolkas som Unicode-data och utvärderas inte med hjälp av en kodsida. Unicode-konstanter har en sortering. Den här sorteringen styr främst jämförelser och skiftlägeskänslighet. Unicode-konstanter tilldelas standardsortering av den aktuella databasen. Om COLLATE-satsen används sker konverteringen till databasens standardsortering fortfarande innan konverteringen till sorteringen som anges av COLLATE-satsen. Mer information finns i Collation och Unicode Support.

Unicode-strängkonstanter stöder förbättrade sortering.

Note

Unicode-konstanter som är större än 8 000 byte skrivs som nvarchar(max) data.

Binary constants

Binära konstanter har prefixet 0x och är en sträng med hexadecimala tal. De omges inte av citattecken.

Följande är exempel på binära strängar:

0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)

Note

Binära konstanter som är större än 8 000 byte skrivs som varbinary(max) data.

Boolean constants

Booleska konstanter (bit) representeras av talen 0 eller 1och omges inte av citattecken. Om ett tal som är större än 1 används konverteras det till 1.

Date-time constants

datetime konstanter representeras med hjälp av teckendatumvärden i specifika format som omges av enkla citattecken.

Följande är exempel på datetime- konstanter:

'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'

Exempel på datetime-konstanter är:

'14:30:24'
'04:24 PM'

Integer constants

Heltal (int) konstanter representeras av en sträng med tal som inte omges av citattecken och inte innehåller decimaltecken. int konstanter måste vara heltal. de får inte innehålla decimaler.

Följande är exempel på int konstanter:

1894
2

Decimal constants

decimaler konstanter representeras av en sträng med tal som inte omges av citattecken och innehåller en decimalpunkt.

Följande är exempel på decimaler konstanter:

1894.1204
2.0

Flyttalskonstanter

flyttal och verkliga konstanter representeras med hjälp av vetenskaplig notation.

Följande är exempel på flyttal eller verkliga värden:

101.5E5
0.5E-2

Money constants

pengar konstanter representeras som en sträng med tal med en valfri decimalpunkt och en valfri valutasymbol som prefix. pengar konstanter inte omges av citattecken.

SQL Server tillämpar inte någon form av grupperingsregler som att infoga ett kommatecken (,) var tredje siffra i strängar som representerar pengar.

Note

Kommatecken ignoreras var som helst i en strängliteral som omvandlas till pengar datatyp.

Följande är exempel på pengar konstanter:

$12
$542023.14
$-23

GUID constants

unikaidentifierare konstanter är en sträng som representerar ett GUID. De kan anges i antingen ett tecken- eller binärt strängformat.

I följande exempel anger båda samma GUID:

'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff

Ange negativa och positiva tal

Om du vill ange om ett tal är positivt eller negativt använder du operatorerna + eller - unary på en numerisk konstant. Detta skapar ett numeriskt uttryck som representerar det signerade numeriska värdet. Numeriska konstanter använder positiva när +- eller - unary-operatorerna inte tillämpas.

Signerade int-uttryck:

+145345234
-2147483648

Signerade decimaluttryck:

+145345234.2234
-2147483648.10

Signerade flyttal uttryck:

+123E-3
-12E5

Signerade pengar uttryck:

-$45.56
+$423456.99

Enhanced collations

Databasmotorn stöder tecken- och Unicode-strängkonstanter som stöder förbättrade sortering. Mer information finns i satsen COLLATE.