I SQL Server, T-SQL QUOTENAME() funktion returnerer en Unicode-streng med afgrænsningerne tilføjet for at gøre inputstrengen til en gyldig SQL Server-separeret identifikator.
Det var designet til at citere databaser og deres objekter.
Funktionen accepterer to argumenter; inputstrengen (påkrævet) og et skilletegn (valgfrit).
Syntaks
Syntaksen ser sådan ud:
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
Hvor character_string er inputstrengen og citat_character er et valgfrit argument til at angive et tegn, der skal bruges som afgrænsningstegn. Hvis det udelades, bruges parenteser som afgrænsning.
Bemærk, at character_string er sysname og er begrænset til 128 tegn. Indtastninger på mere end 128 tegn returnerer NULL .
Gyldige afgrænsningstegn (for det valgfrie citat_character argument) er:
`(tilbagemærke)'(enkelt anførselstegn)"(dobbelt anførselstegn)[](venstre eller højre parentes)()(venstre eller højre parentes)<> (mindre end eller større end-tegn){}(venstre eller højre bøjle)
Eksempel 1 – Grundlæggende brug
Her er et eksempel på, hvordan det virker:
SELECT QUOTENAME('cat[]dog') AS Result; Resultat:
+-------------+ | Result | |-------------| | [cat[]]dog] | +-------------+
Eksempel 2 – Brugerdefineret skilletegn
Her er et eksempel på at angive en anden afgrænsning:
SELECT QUOTENAME('cat[]dog', '}') AS Result; Resultat:
+------------+
| Result |
|------------|
| {cat[]dog} |
+------------+
Og her er, hvad der sker, hvis vi ændrer de midterste parenteser til krøllede seler:
SELECT QUOTENAME('cat{}dog', '}') AS Result; Resultat:
+-------------+
| Result |
|-------------|
| {cat{}}dog} |
+-------------+
Eksempel 3 – Ugyldig inputstreng
Som nævnt er inputstrengen sysname , og derfor er det begrænset til 128 tegn. sysname er en systemleveret brugerdefineret datatype, der funktionelt svarer til nvarchar(128) , bortset fra at den ikke er nullbar. sysname bruges til at henvise til databaseobjektnavne.
Her er, hvad der sker, hvis inputstrengen er for lang:
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; Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Eksempel 4 – Ugyldig skilletegn
Her er, hvad der sker, hvis du angiver en ugyldig afgrænsning:
SELECT QUOTENAME('cat[]dog', '!') AS Result; Resultat:
+----------+ | Result | |----------| | NULL | +----------+