如何在sql中恢复我的数据?

时间:2015-02-26 17:26:26

标签: sql sql-server

错误地我没有用N作为Unicode字符串的前缀,我插入的数据现在包含?而不是原始的Unicode字符。以此为例:

 SELECT T.A FROM ( SELECT '男孩 SQL' A) T 

它返回?? SQL而不是男孩 SQL

那么我怎样才能获得实际价值;我可以在外SELECT语句中使用什么?

1 个答案:

答案 0 :(得分:6)

如果要声明硬编码的NVARCHAR字符串值,请务必使用以下格式:

DECLARE @Variable NVARCHAR(10) = N'YourVariableHere' 

而不是:

DECLARE @Variable NVARCHAR(10) = 'YourVariableHere' 

第二种方法将导致隐式列转换,这对性能最不利,最坏的情况是错误地对结果进行交互。我刚刚为此找到了一个很酷的小测试。在SQL Server中运行此脚本。

SELECT N'௰', '௰'; 

结果你会得到这个。

enter image description here

如果您对隐式列转换的更多信息感兴趣,请查看here

但是,由于您已将此数据插入数据库,因此运气不佳。除非您将脚本保存在其他位置,否则无法恢复此操作。

如果您具有将数据插入生产系统的权限和权限,我建议您下次更加谨慎。