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