sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fungerer funktionen QUOTENAME() i SQL Server (T-SQL)

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

  1. gem install pg virker ikke på OSX Lion

  2. Sådan opretter du en totalrække i Access

  3. For en nybegynder er der stor forskel mellem MySQL og PostgreSQL

  4. psycopg2 lækker hukommelse efter stor forespørgsel