我正在处理 SQL Server 中的一些表,这些表使用 8 位字符而不是 unicode 存储文本——varchar 而不是 nvarchar。一定数量的文本包含值超出 ASCII 范围的字符,例如大引号、短划线和 ñ 等国际字符。大概这是可行的,因为我们所有的 PC 和服务器都使用相同的代码页。
但是,当我在 SSMS 中使用“任务”>“生成脚本”脚本工具编写此类表时,生成的脚本会以这样一种方式转换特殊字符,即如果我使用脚本重建表,则特殊字符会损坏。例如“cañon”变成“ca±on”。我可以在脚本包含的 INSERT 语句中看到这一点,其中数据库中的“cañon”在 INSERT 语句中显示为“ca±on”。
在 SSMS 中,如何编写包含 ASCII 范围之外的 varchar 数据的表,以便往返可以工作?