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