Detect unicode downgrade fail (nvarchar to varchar)
;WITH unicodeDataSource
AS
(
SELECT N'Hello' AS Text , N'English' AS Language UNION ALL
SELECT N'Здравствуйте' AS Text, N'Russian' AS Language UNION ALL
SELECT N'こんにちは' AS Text, N'Japanese' AS Language UNION ALL
SELECT N'Hallå' AS Text, N'Swedish' AS Language
)
SELECT *,
iif(s.Text = cast(cast(s.Text AS varchar(100)) AS nvarchar(100))
,1,0) AS CastWasSuccessful
FROM unicodeDataSource s
Result
AS
(
SELECT N'Hello' AS Text , N'English' AS Language UNION ALL
SELECT N'Здравствуйте' AS Text, N'Russian' AS Language UNION ALL
SELECT N'こんにちは' AS Text, N'Japanese' AS Language UNION ALL
SELECT N'Hallå' AS Text, N'Swedish' AS Language
)
SELECT *,
iif(s.Text = cast(cast(s.Text AS varchar(100)) AS nvarchar(100))
,1,0) AS CastWasSuccessful
FROM unicodeDataSource s
Result
Text | Language | CastWasSuccessful |
Hello | English |
1
|
Здравствуйте | Russian |
0
|
こんにちは | Japanese |
0
|
Hallå | Swedish |
1
|
Comments