Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как работи функцията QUOTENAME() в SQL Server (T-SQL)

В SQL Server, T-SQL QUOTENAME() функцията връща Unicode низ с добавени разделители, за да направи входния низ валиден разделен идентификатор на SQL Server.

Той е проектиран за цитиране на бази данни и техните обекти.

Функцията приема два аргумента; входния низ (задължителен) и разделител (по избор).

Синтаксис

Синтаксисът е така:

QUOTENAME ( 'character_string' [ , 'quote_character' ] )

Където символен низ е входният низ и цитатният_символ е незадължителен аргумент за определяне на символ, който да се използва като разделител. Ако е пропуснат, скоби се използват като разделител.

Обърнете внимание, че character_string е sysname и е ограничен до 128 знака. Въвеждането, по-голямо от 128 знака, връща NULL .

Валидни разделители (за незадължителния цитат_знак аргумент) са:

  • ` (отметка)
  • ' (единични кавички)
  • " (двойни кавички)
  • [] (лява или дясна скоба)
  • () (лява или дясна скоба)
  • <> (знак по-малко или по-голям)
  • {} (лява или дясна скоба)

Пример 1 – Основна употреба

Ето пример за това как работи:

SELECT QUOTENAME('cat[]dog') AS Result;

Резултат:

+-------------+
| Result      |
|-------------|
| [cat[]]dog] |
+-------------+

Пример 2 – Персонализиран разделител

Ето пример за посочване на различен разделител:

SELECT QUOTENAME('cat[]dog', '}') AS Result;

Резултат:

+------------+
| Result     |
|------------|
| {cat[]dog} |
+------------+

И ето какво се случва, ако променим средните скоби с къдрави скоби:

SELECT QUOTENAME('cat{}dog', '}') AS Result;

Резултат:

+-------------+
| Result      |
|-------------|
| {cat{}}dog} |
+-------------+

Пример 3 – Невалиден входен низ

Както споменахме, входният низ е sysname , и следователно е ограничен до 128 знака. системно име е предоставен от системата потребителски дефиниран тип данни, който е функционално еквивалентен на nvarchar(128) , с изключение на това, че не е нула. системно име се използва за препратка към имената на обекти на базата данни.

Ето какво се случва, ако входният низ е твърде дълъг:

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;

Резултат:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Пример 4 – Невалиден разделител

Ето какво се случва, ако посочите невалиден разделител:

SELECT QUOTENAME('cat[]dog', '!') AS Result;

Резултат:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите регистрационен файл към база данни на SQL Server (T-SQL)

  2. Избройте заявките, изпълнявани на SQL Server

  3. Вмъкнете картина в полето за изображение на SQL Server 2005, като използвате само SQL

  4. Добавете изчислена колона към съществуваща таблица в SQL Server

  5. 3 начина за преобразуване на цяло число в десетично число в SQL Server