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


Text Language CastWasSuccessful
Hello English
1
Здравствуйте Russian
0
こんにちは Japanese
0
Hallå Swedish
1

Comments

Popular posts from this blog

SSIS: Set parent package variable from child package

How to decrypt stored password from SSMS registered servers

Insert bulk statement does not support recompile (SQL 2017)