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 | +----------+