Det finns inte mycket information i frågan. Allt vi vet är:
- Kolumnen använder sortering av
Thai_CI_AS
(åtminstone att det var det låter som att frågan står) - Thailändska tecken skickas in
- Det som lagras i kolumnen är:
???
Men bara utifrån det kan vi härleda två saker:
-
Den inkommande strängen är varken en
NVARCHAR
parameter / variabel, och det är inte heller en strängliteral som är prefixet med ett versaler "N",och
-
Standardsorteringen för den DB där frågan körs (inte nödvändigtvis den DB där tabellen finns) är inte en thailändsk samling.
Vi vet inte om destinationskolumnen är VARCHAR
eller NVARCHAR
, men det spelar ingen roll om kolumnsamlingen är en thailändsk samling (eftersom det tillåter VARCHAR
data som innehåller thailändska tecken och NVARCHAR
skulle fungera oavsett).
Om antingen :
-
den inkommande strängen använder en
NVARCHAR
parameter (eller om strängen är bokstavlig, prefixet med ett versaler "N"),eller
-
frågan kördes i en DB som har en thailändsk standardsortering
sedan skulle de thailändska tecknen lagras som förväntat.
Följande exempel visar detta beteende. Jag använder en Thai Character Khomut U+0E5B
på en instans som har en Korean_100_CS_AS_KS_WS_SC
Standardsortering på instansnivå. Målkolumnen har en sortering av Thai_CI_AS
. För det första, medan den "nuvarande" DB är en som inte gör det har en thailändsk standardsortering lägger jag till tecknet två gånger:en gång med prefixet "N" och en gång utan prefix på strängen bokstavlig:
USE [tempdb];
-- DROP TABLE #Thai;
CREATE TABLE #Thai (ID INT IDENTITY(1, 1), Col1 VARCHAR(50) COLLATE Thai_CI_AS);
-- In a DB with a non-Thai default Collation:
INSERT INTO #Thai (Col1) VALUES ('๛');
INSERT INTO #Thai (Col1) VALUES (N'๛');
Därefter byter jag till en DB som gör ha en thailändsk standardsortering och infoga bara strängen utan prefix (inget behov av att testa strängen med "N"-prefix igen):
USE [other_db];
-- In a DB with a Thai default Collation:
INSERT INTO #Thai (Col1) VALUES ('๛');
SELECT * FROM #Thai;
Resultatet är:
ID Col1
1 ?
2 ๛
3 ๛
Som du kan se (punkt # nedan relaterar till ID # i resultaten ovan):
- Strängen utan "N"-prefix, som används i en DB med en icke-thailändsk standardsortering, översattes till
?
- Strängen med "N"-prefix, som också används i en DB som använder en icke-thailändsk standardsortering, lagrade värdet korrekt
- Strängen utan "N"-prefix, som används i en DB som har en thailändsk standardsortering, lagrade värdet korrekt