将ntext转换为varbinary(max)

时间:2015-05-25 10:19:57

标签: sql tsql sql-server-2008-r2

是否可以将ntext中的列值从varbinary(max)转换为SQL server 2000 R2

我找到了一种解决方法,最初我需要从ntext转换为nvarchar(),然后从nvarchar()转换为varbinary(max)

1 个答案:

答案 0 :(得分:0)

不,这不是受支持的直接转换。

Data Type Conversion主题(image)所示,您只能从ntext转换为其他字符串数据类型之一或XML。

但无论如何你都不需要这样做。

论点

  

因为我希望数据以二进制格式存储。

没有意义,因为它无论如何都不会影响物理存储。 请参阅下文,存储的实际字节数相同。

CREATE TABLE T
(
A NVARCHAR(MAX),
B VARBINARY(MAX)
)

INSERT INTO T 
SELECT N'foobar',
       CAST(N'foobar' AS VARBINARY(MAX))

enter image description here

它只影响逻辑上字节的解释方式。存储为varbinary数据类型会使数据更难处理(需要强制转换为nvarchar以用作字符串)并且您的应用程序更加脆弱。 Conversions between any data type and the binary data types are not guaranteed to be the same between versions of SQL Server.