In SQL Server is de T-SQL QUOTENAME() functie retourneert een Unicode-tekenreeks met de scheidingstekens toegevoegd om de invoertekenreeks een geldige SQL Server-gescheiden id te maken.
Het is ontworpen voor het citeren van databases en hun objecten.
De functie accepteert twee argumenten; de invoertekenreeks (vereist) en een scheidingsteken (optioneel).
Syntaxis
De syntaxis gaat als volgt:
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
Waar character_string is de invoertekenreeks, en quote_character is een optioneel argument om een teken op te geven dat als scheidingsteken moet worden gebruikt. Indien weggelaten, worden haakjes gebruikt als scheidingsteken.
Merk op dat character_string is sysname en is beperkt tot 128 tekens. Invoer groter dan 128 tekens retourneert NULL .
Geldige scheidingstekens (voor het optionele quote_character argument) zijn:
`(backtick)'(enkel aanhalingsteken)"(dubbel aanhalingsteken)[](linker of rechter haakje)()(linker of rechter haakje)<>(kleiner dan of groter dan teken){}(links of rechts accolade)
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van hoe het werkt:
SELECT QUOTENAME('cat[]dog') AS Result; Resultaat:
+-------------+ | Result | |-------------| | [cat[]]dog] | +-------------+
Voorbeeld 2 – Aangepast scheidingsteken
Hier is een voorbeeld van het specificeren van een ander scheidingsteken:
SELECT QUOTENAME('cat[]dog', '}') AS Result; Resultaat:
+------------+
| Result |
|------------|
| {cat[]dog} |
+------------+
En dit is wat er gebeurt als we de middelste haakjes veranderen in accolades:
SELECT QUOTENAME('cat{}dog', '}') AS Result; Resultaat:
+-------------+
| Result |
|-------------|
| {cat{}}dog} |
+-------------+
Voorbeeld 3 – Ongeldige invoerreeks
Zoals vermeld, is de invoerstring sysname , en daarom is het beperkt tot 128 tekens. systeemnaam is een door het systeem geleverd, door de gebruiker gedefinieerd gegevenstype dat functioneel equivalent is aan nvarchar(128) , behalve dat het niet nullable is. systeemnaam wordt gebruikt om naar namen van databaseobjecten te verwijzen.
Dit is wat er gebeurt als de invoerreeks te lang is:
SELECT QUOTENAME('This text is too long to be an input string for this function, because it contains more than 128 characters - too long for sysname.') AS Result; Resultaat:
+----------+ | Result | |----------| | NULL | +----------+
Voorbeeld 4 – Ongeldig scheidingsteken
Dit gebeurt er als u een ongeldig scheidingsteken opgeeft:
SELECT QUOTENAME('cat[]dog', '!') AS Result; Resultaat:
+----------+ | Result | |----------| | NULL | +----------+