Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak działa funkcja QUOTENAME() w programie SQL Server (T-SQL)

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

  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 Group BY, Top N pozycji dla każdej grupy

  2. Czy istnieje sposób na osadzenie raportów i pulpitów nawigacyjnych Power Bi w aplikacji desktopowej vb.net lub C# z bazą danych sql Server 2008?

  3. Nieoczekiwane zachowanie @@rowcount wewnątrz UDF w MS SQL 2019

  4. Błąd krytyczny PHP:wywołanie niezdefiniowanej funkcji mssql_connect()

  5. Funkcje TRIM, LTRIM i RTRIM programu SQL Server