在nvarchar列中存储无穷大符号

时间:2016-05-30 12:11:19

标签: sql sql-server

我试图在我的SQL数据库中将一个String存储在nvarchar列中,该列包含字符无穷大'∞'而我得到的是8&8;' 8'存储。 有什么想法吗?我应该怎么做呢?

 string = ' <ss:Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="9"
          ss:DefaultColumnWidth="48.0" ss:DefaultRowHeight="12.75">
          <ss:Row ss:Index="3">
          <ss:Cell ss:Index="2">
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>
          <ss:Cell>
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>'

2 个答案:

答案 0 :(得分:3)

使用N(即N'String....')为您的字符串添加前缀,以明确告诉sql server您将发送一些unicode数据并且它应该可以正常工作。

Declare @t table (col nvarchar(4000))

Insert into @t
Values ( N' <ss:Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="9"
          ss:DefaultColumnWidth="48.0" ss:DefaultRowHeight="12.75">
          <ss:Row ss:Index="3">
          <ss:Cell ss:Index="2">
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>
          <ss:Cell>
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>')


Select * from @t

答案 1 :(得分:0)

以下SQL对我有用:

DECLARE @string NVARCHAR(MAX) = N'<ss:Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="9"
          ss:DefaultColumnWidth="48.0" ss:DefaultRowHeight="12.75">
          <ss:Row ss:Index="3">
          <ss:Cell ss:Index="2">
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>
          <ss:Cell>
          <ss:Data ss:Type="String">∞</ss:Data>
          </ss:Cell>'

PRINT  @string