Constanten (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric
Een constante, ook wel een letterlijke of scalaire waarde genoemd, is een symbool dat een specifieke gegevenswaarde vertegenwoordigt. De notatie van een constante is afhankelijk van het gegevenstype van de waarde die deze vertegenwoordigt.
Notitie
De term constante bij het ontwikkelen van toepassingen en het concept van een constante in Transact-SQL (T-SQL) zijn niet hetzelfde. Er is geen specifieke manier om een globale statische waarde in te stellen in T-SQL. Constanten in T-SQL zijn het equivalent van letterlijke tekenreekswaarden.
Tekenreeksconstanten
Tekenreeksconstanten worden tussen enkele aanhalingstekens geplaatst en bevatten alfanumerieke tekens (a
-z
, A
-Z
en 0
-9
) en speciale tekens, zoals uitroepteken (!
), bij teken (@
) en nummerteken (#
). Tekenreeksconstanten worden de standaardsortering van de huidige database toegewezen. Als de COLLATE-component wordt gebruikt, vindt de conversie naar de standaardcodepagina van de database nog steeds plaats voordat de conversie naar de sortering die is opgegeven door de COLLATE-component. Tekenreeksen die door gebruikers worden getypt, worden geëvalueerd via de codepagina van de computer en worden vertaald naar de standaardcodepagina van de database als dit nodig is.
Notitie
Wanneer een UTF8-sortering is opgegeven met behulp van de COLLATE-component, vindt de conversie naar de standaardcodepagina van de database nog steeds plaats voordat de conversie naar de sortering die is opgegeven door de COLLATE-component. De conversie wordt niet rechtstreeks uitgevoerd naar de opgegeven sortering met Unicode. Zie Unicode-tekenreeksvoor meer informatie.
Als de optie QUOTED_IDENTIFIER is ingesteld voor een verbinding, kunnen tekenreeksen ook tussen dubbele aanhalingstekens worden geplaatst, maar het Microsoft OLE DB-stuurprogramma voor SQL Server en ODBC-stuurprogramma voor SQL Server automatisch SET QUOTED_IDENTIFIER ON
gebruiken. U wordt aangeraden enkele aanhalingstekens te gebruiken.
Als een tekenreeks tussen enkele aanhalingstekens een ingesloten aanhalingsteken bevat, geeft u het ingesloten enkele aanhalingsteken weer met twee enkele aanhalingstekens. Dit is niet vereist in tekenreeksen die zijn ingesloten tussen dubbele aanhalingstekens.
Hieronder ziet u voorbeelden van tekenreeksen:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
Lege tekenreeksen worden weergegeven als twee enkele aanhalingstekens met niets ertussen. In de compatibiliteitsmodus 6.x wordt een lege tekenreeks behandeld als één spatie.
Tekenreeksconstanten ondersteunen verbeterde sorteringen.
Notitie
Tekenconstanten groter dan 8000 bytes worden getypt als varchar(max) gegevens.
Unicode-tekenreeksen
Unicode-tekenreeksen hebben een indeling die vergelijkbaar is met tekenreeksen, maar worden voorafgegaan door een N
-id (N staat voor National Language in de STANDAARD SQL-92).
Belangrijk
Het voorvoegsel N
moet hoofdletters bevatten.
'Michél'
is bijvoorbeeld een tekenconstante terwijl N'Michél'
een Unicode-constante is. Unicode-constanten worden geïnterpreteerd als Unicode-gegevens en worden niet geëvalueerd met behulp van een codepagina. Unicode-constanten hebben wel een sortering. Deze sortering bepaalt voornamelijk vergelijkingen en hoofdlettergevoeligheid. Unicode-constanten worden toegewezen aan de standaardsortering van de huidige database. Als de COLLATE-component wordt gebruikt, vindt de conversie naar de standaardsortering van de database nog steeds plaats voordat de conversie naar de sortering die is opgegeven door de COLLATE-component. Zie Sortering en Unicode-ondersteuningvoor meer informatie.
Unicode-tekenreeksconstanten ondersteunen verbeterde sorteringen.
Notitie
Unicode-constanten groter dan 8000 bytes worden getypt als nvarchar(max) gegevens.
Binaire constanten
Binaire constanten hebben het voorvoegsel 0x
en zijn een tekenreeks met hexadecimale getallen. Ze staan niet tussen aanhalingstekens.
Hier volgen enkele voorbeelden van binaire tekenreeksen:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Notitie
Binaire constanten groter dan 8000 bytes worden getypt als varbinary(max) gegevens.
Booleaanse constanten
Booleaanse constanten (bit) worden vertegenwoordigd door de getallen 0
of 1
en worden niet tussen aanhalingstekens geplaatst. Als een getal groter is dan 1
wordt gebruikt, wordt het geconverteerd naar 1
.
Datum-tijdconstanten
datum/tijd- constanten worden vertegenwoordigd door tekendatumwaarden in specifieke notaties te gebruiken, tussen enkele aanhalingstekens.
Hier volgen voorbeelden van datum/tijd- constanten:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Voorbeelden van datum/tijd-constanten zijn:
'14:30:24'
'04:24 PM'
Gehele getallen constanten
Gehele getallen (int) worden vertegenwoordigd door een reeks getallen die niet tussen aanhalingstekens staan en geen decimale punten bevatten. int constanten moeten gehele getallen zijn; ze mogen geen decimalen bevatten.
Hier volgen voorbeelden van int constanten:
1894
2
Decimale constanten
decimale constanten worden weergegeven door een reeks getallen die niet tussen aanhalingstekens staan en een decimaalteken bevatten.
Hier volgen voorbeelden van decimale constanten:
1894.1204
2.0
Constanten van drijvende komma
zwevende en echte constanten worden vertegenwoordigd met behulp van wetenschappelijke notatie.
Hier volgen voorbeelden van float- of echte waarden:
101.5E5
0.5E-2
Geldconstanten
geld constanten worden weergegeven als een reeks getallen met een optioneel decimaalteken en een optioneel valutasymbool als voorvoegsel. geld constanten worden niet tussen aanhalingstekens geplaatst.
SQL Server dwingt geen soort groeperingsregels af, zoals het invoegen van een komma (,
) om de drie cijfers in tekenreeksen die geld vertegenwoordigen.
Notitie
Komma's worden overal in een letterlijke tekenreeks genegeerd die wordt omgezet in het geld gegevenstype.
Hier volgen enkele voorbeelden van geld constanten:
$12
$542023.14
$-23
GUID-constanten
uniqueidentifier constanten zijn een tekenreeks die een GUID vertegenwoordigt. Ze kunnen worden opgegeven in een teken- of binaire tekenreeksindeling.
In de volgende voorbeelden worden beide dezelfde GUID opgegeven:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Negatieve en positieve getallen opgeven
Als u wilt aangeven of een getal positief of negatief is, past u de +
of -
unaire operatoren toe op een numerieke constante. Hiermee maakt u een numerieke expressie die de ondertekende numerieke waarde vertegenwoordigt. Numerieke constanten gebruiken positief wanneer de +
of -
unaire operatoren niet worden toegepast.
Ondertekende expressies:
+145345234
-2147483648
Ondertekende decimale expressies:
+145345234.2234
-2147483648.10
Ondertekende float- expressies:
+123E-3
-12E5
Ondertekende geld- expressies:
-$45.56
+$423456.99
Verbeterde sorteringen
De database-engine ondersteunt teken- en Unicode-tekenreeksconstanten die uitgebreide sorteringen ondersteunen. Zie de component COLLATE voor meer informatie.