Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: SQL Server 2025 (17.x) Förhandsversion av 
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Förhandsversion av Microsoft Fabric
              UNISTR ger stöd för Unicode-strängliteraler genom att du kan ange Unicode-kodningsvärdet för tecken i strängen. 
              UNISTR returnerar De Unicode-tecken som motsvarar indatauttrycket enligt unicode-standarden.
Escape-sekvensen för ett Unicode-tecken kan anges i form av \xxxx eller \+xxxxxx, där xxxx är ett giltigt UTF-16-kodpunktsvärde och xxxxxx är ett giltigt Unicode-kodpunktsvärde. Du kan slå upp Unicode-kodpunktsvärden i Unicode-koddiagram.
Jämfört med funktioner som NCHARger UNISTR ett mer flexibelt och omfattande sätt att hantera Unicode-tecken. Även om NCHAR kan konvertera ett enda Unicode-värde till ett tecken, hanterar UNISTR flera Unicode-värden och escape-sekvenser, vilket gör det enklare att arbeta med komplexa strängar som innehåller olika Unicode-tecken.
Note
              UNISTRär tillgängligt i Azure SQL Managed Instance med sql Server 2025- eller always-up-to-date update-principen.
              
              
              Transact-SQL syntaxkonventioner
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
Viktiga fördelar med UNISTR är:
- Stöd för Unicode-escapesekvenser: - UNISTRgör att du kan ange Unicode-tecken med hjälp av escape-sekvenser
- Flexibilitet med indatatyper: - UNISTRstöder olika teckentyper som char, nchar, varcharoch nvarchar. För tecken och varchar datatyper bör sorteringen vara en giltig UTF-8-sortering.
- Anpassade escape-tecken: Du kan definiera ett anpassat escape-tecken för att utföra den nödvändiga konverteringen av Unicode-värden till en strängteckenuppsättning. 
Pipes-operatorn || är tillgänglig i Azure SQL Managed Instance som konfigurerats med SQL Server 2025 eller Always-up-to-datumuppdateringsprincipen.
Stöd för kodsida
Funktionen UNISTR är inte kompatibel med äldre kodsidor, vilket innebär att den inte stöder sortering som använder teckenuppsättningar som inte är Unicode-teckenuppsättningar. Dessa sorteringar med äldre kodsidor kan identifieras med hjälp av följande fråga.
SELECT DISTINCT p.language,
                p.codepage
FROM sys.fn_helpcollations() AS c
CROSS APPLY (VALUES (LEFT(c.name, CHARINDEX('_', c.name) - 1),
    COLLATIONPROPERTY(c.name, 'codepage'))) AS p(language, codepage)
WHERE p.codepage NOT IN (
    0 /* Unicode Only collation */,
    65001 /* UTF-8 code page */
);
Mer information finns i bilaga G DBCS/Unicode-mappningstabeller och bilaga H-kodsidor.
Arguments
'character_expression'
Ett uttryck av valfri teckentyp, till exempel tecken, nchar, varchareller nvarchar. För tecken och varchar datatyper bör sorteringen vara en giltig UTF-8-sortering. Du kan ange antingen strängliteraler eller Unicode- eller UTF-16-kodpunktsvärden eller båda. 
              character_expression stöder en längd så stor som varchar(max) och nvarchar(max).
N'unicode_escape_character'
Ett enstaka tecken som representerar en användardefinierad Unicode-escape-sekvens. Om det inte anges är standardvärdet \.
Returtyper
Ett strängvärde vars längd och typ beror på indatatyperna.
Examples
A. Använda UNISTR jämfört med funktionen NCHAR
I följande exempel används UNISTR alla funktioner för att utföra den nödvändiga konverteringen av Unicode-värdena till strängteckenuppsättningen för att visa Unicode-tecknet Leende ansikte med öppen mun. Databassortering måste vara en UTF-8-sortering om indata är av tecken eller varchar datatyper.
Använda UNISTR och NCHAR:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Det här exempelexemplet kan också skrivas:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Här är resultatuppsättningen.
-----------
Hello! 😃
B. Använda UNISTR-funktionen med användardefinierat escape-tecken
I följande exempel används funktionen UNISTR med ett anpassat escape-tecken för att utföra den nödvändiga konverteringen av Unicode till en strängteckenuppsättning.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Här är resultatuppsättningen.
-----------
ABCÀƁƇ
C. Använd UNISTR-funktionen genom att kombinera strängliteraler och Unicode-kodpunkter
I följande exempel används UNISTR med ett användardefinierat escape-tecken ($) och ett varchar datatyp med UTF-8-sortering. Den kombinerar strängliteraler med ett Unicode-kodpunktsvärde:
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Här är resultatuppsättningen.
------------------
I ♥ Azure SQL.
D. Använd UNISTR-funktionen för tecken utanför UTF-8-gränsen
Om du behöver använda en teckenuppsättning utöver UTF-8 måste du konvertera teckensekvensen till UTF-8 med hjälp av COLLATE-satsen. Här är ett exempel:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Här är resultatuppsättningen.
Yes_in_Japanese_Hiragana
------------------------
はい