In SQL Server, T-SQL QUOTENAME()
La funzione restituisce una stringa Unicode con i delimitatori aggiunti per rendere la stringa di input un identificatore delimitato di SQL Server valido.
È stato progettato per citare i database ei loro oggetti.
La funzione accetta due argomenti; la stringa di input (obbligatoria) e un carattere delimitatore (facoltativo).
Sintassi
La sintassi è questa:
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
Dove stringa_carattere è la stringa di input e quote_character è un argomento facoltativo per specificare un carattere da utilizzare come delimitatore. Se omesso, le parentesi vengono utilizzate come delimitatore.
Nota che stringa_carattere è nome di sistema ed è limitato a 128 caratteri. Gli input superiori a 128 caratteri restituiscono NULL
.
Delimitatori validi (per il quote_character facoltativo argomento) sono:
`
(ritorno indietro)'
(virgolette singole)"
(virgolette doppie)[]
(parentesi sinistra o destra)()
(parantesi sinistra o destra)<>
(minore o maggiore di segno){}
(parentesi sinistra o destra)
Esempio 1 – Utilizzo di base
Ecco un esempio di come funziona:
SELECT QUOTENAME('cat[]dog') AS Result;
Risultato:
+-------------+ | Result | |-------------| | [cat[]]dog] | +-------------+
Esempio 2 – Delimitatore personalizzato
Ecco un esempio per specificare un delimitatore diverso:
SELECT QUOTENAME('cat[]dog', '}') AS Result;
Risultato:
+------------+ | Result | |------------| | {cat[]dog} | +------------+
Ed ecco cosa succede se cambiamo le parentesi centrali in parentesi graffe:
SELECT QUOTENAME('cat{}dog', '}') AS Result;
Risultato:
+-------------+ | Result | |-------------| | {cat{}}dog} | +-------------+
Esempio 3 – Stringa di input non valida
Come accennato, la stringa di input è sysname , e quindi è limitato a 128 caratteri. nome di sistema è un tipo di dati definito dall'utente fornito dal sistema che è funzionalmente equivalente a nvarchar(128) , tranne per il fatto che non è annullabile. nome di sistema viene utilizzato per fare riferimento ai nomi degli oggetti del database.
Ecco cosa succede se la stringa di input è troppo lunga:
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;
Risultato:
+----------+ | Result | |----------| | NULL | +----------+
Esempio 4 – Delimitatore non valido
Ecco cosa succede se specifichi un delimitatore non valido:
SELECT QUOTENAME('cat[]dog', '!') AS Result;
Risultato:
+----------+ | Result | |----------| | NULL | +----------+