我在 SQL Server 中有一个数据库,其中包含一个需要包含 Unicode 数据的列(它包含来自世界各地的用户地址,例如开罗的 القاهرة)
此列是一个 nvarchar 列,具有数据库默认排序规则 (Latin1_General_CI_AS),但我注意到通过包含非英文字符的 SQL 语句插入其中的数据并显示为?????。
解决方案似乎是我没有使用 n 前缀,例如
INSERT INTO table (address) VALUES ('القاهرة')
代替:
INSERT INTO table (address) VALUES (n'القاهرة')
我的印象是 Unicode 会自动转换为 nvarchar 列,我不需要这个前缀,但这似乎是不正确的。
问题是我在此列中仍有一些数据显示为 ??????? 在 SQL Server Management Studio 中,我不知道它是什么!
数据是否仍然存在,但字符编码不正确,无法显示但仍然可以挽救(如果是,我该如何恢复它?),还是永远消失了?
谢谢,
汤姆