No SQL Server, o T-SQL
QUOTENAME()
A função retorna uma string Unicode com os delimitadores adicionados para tornar a string de entrada um identificador delimitado válido do SQL Server. Ele foi projetado para citar bancos de dados e seus objetos.
A função aceita dois argumentos; a string de entrada (obrigatória) e um caractere delimitador (opcional).
Sintaxe
A sintaxe fica assim:
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
Onde character_string é a string de entrada e quote_character é um argumento opcional para especificar um caractere a ser usado como delimitador. Se omitidos, colchetes são usados como delimitador.
Observe que character_string é nomedosistema e está limitado a 128 caracteres. Entradas com mais de 128 caracteres retornam
NULL
. Delimitadores válidos (para o opcional quote_character argumento) são:
`
(acento grave)'
(aspas simples)"
(aspas duplas)[]
(colchete esquerdo ou direito)()
(parêntese esquerdo ou direito)<>
(menor ou maior que o sinal){}
(chave esquerda ou direita)
Exemplo 1 – Uso básico
Veja um exemplo de como funciona:
SELECT QUOTENAME('cat[]dog') AS Result;
Resultado:
+-------------+ | Result | |-------------| | [cat[]]dog] | +-------------+
Exemplo 2 – Delimitador personalizado
Aqui está um exemplo de especificação de um delimitador diferente:
SELECT QUOTENAME('cat[]dog', '}') AS Result;
Resultado:
+------------+ | Result | |------------| | {cat[]dog} | +------------+
E aqui está o que acontece se mudarmos os colchetes do meio para chaves:
SELECT QUOTENAME('cat{}dog', '}') AS Result;
Resultado:
+-------------+ | Result | |-------------| | {cat{}}dog} | +-------------+
Exemplo 3 - String de entrada inválida
Como mencionado, a string de entrada é sysname , e, portanto, é limitado a 128 caracteres. nome do sistema é um tipo de dados definido pelo usuário fornecido pelo sistema que é funcionalmente equivalente a nvarchar(128) , exceto que não é anulável. nome do sistema é usado para fazer referência a nomes de objetos de banco de dados.
Veja o que acontece se a string de entrada for muito longa:
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;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+
Exemplo 4 – Delimitador inválido
Veja o que acontece se você especificar um delimitador inválido:
SELECT QUOTENAME('cat[]dog', '!') AS Result;
Resultado:
+----------+ | Result | |----------| | NULL | +----------+