W SQL Server funkcja T-SQL QUOTENAME()
funkcja zwraca ciąg znaków Unicode z dodanymi ogranicznikami, aby ciąg wejściowy był prawidłowym rozdzielanym identyfikatorem SQL Server.
Przeznaczony do cytowania baz danych i ich obiektów.
Funkcja przyjmuje dwa argumenty; ciąg wejściowy (wymagany) i znak ogranicznika (opcjonalnie).
Składnia
Składnia wygląda tak:
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
Gdzie ciąg_znaków jest ciągiem wejściowym, a quote_character jest opcjonalnym argumentem określającym znak używany jako ogranicznik. W przypadku pominięcia nawiasy są używane jako ograniczniki.
Pamiętaj, że character_string to nazwa systemu i jest ograniczona do 128 znaków. Dane wejściowe większe niż 128 znaków zwracają NULL
.
Prawidłowe ograniczniki (dla opcjonalnego quote_character argument) to:
`
(wstecz)'
(pojedynczy cudzysłów)"
(podwójny cudzysłów)[]
(lewy lub prawy nawias kwadratowy)()
(lewy lub prawy nawias)<> (mniejszy lub większy niż znak)
{}
(lewy lub prawy nawias klamrowy)
Przykład 1 – Podstawowe użycie
Oto przykład tego, jak to działa:
SELECT QUOTENAME('cat[]dog') AS Result;
Wynik:
+-------------+ | Result | |-------------| | [cat[]]dog] | +-------------+
Przykład 2 – Niestandardowy ogranicznik
Oto przykład określenia innego ogranicznika:
SELECT QUOTENAME('cat[]dog', '}') AS Result;
Wynik:
+------------+ | Result | |------------| | {cat[]dog} | +------------+
A oto, co się stanie, jeśli zmienimy środkowe nawiasy klamrowe na nawiasy klamrowe:
SELECT QUOTENAME('cat{}dog', '}') AS Result;
Wynik:
+-------------+ | Result | |-------------| | {cat{}}dog} | +-------------+
Przykład 3 – Nieprawidłowy ciąg wejściowy
Jak wspomniano, ciąg wejściowy to sysname , a zatem jest ograniczona do 128 znaków. nazwa systemu to dostarczony przez system typ danych zdefiniowany przez użytkownika, który jest funkcjonalnie równoważny nvarchar(128) , z wyjątkiem tego, że nie może być wartością null. nazwa systemu służy do odwoływania się do nazw obiektów bazy danych.
Oto, co się stanie, jeśli ciąg wejściowy jest zbyt długi:
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;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+
Przykład 4 – Nieprawidłowy ogranicznik
Oto, co się stanie, jeśli określisz nieprawidłowy ogranicznik:
SELECT QUOTENAME('cat[]dog', '!') AS Result;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+