sql-server - 将 ntext/text 转换为 hex/binary/varbinary

标签 sql-server

如何在 SQL Server 上获取此查询?它会导致错误: 这是MySQL版本

SELECT HEX(c1) FROM t1;

这个简单的示例工作:

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT CAST('example data' AS VARBINARY) AS Body2

但是这个sql不起作用。

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 10 [NewsID]
      ,[upTitle]
      ,[Title]
      ,[Summary]
      ,CAST(Body AS VARBINARY) AS Body2
      ,[LargePic]
      ,[PublishDate]
  FROM [Upgrade_News].[dbo].[News_News]

这给了我这个错误

Msg 529, Level 16, State 2, Line 6
Explicit conversion from data type ntext to varbinary is not allowed.
  1. 我只想将十六进制列作为值。我如何在 SQL Server 上执行此操作?
  2. SQL 上的十六进制和非十六进制数据的正确函数是什么 服务器?

我需要在选择时将 ntext 转换为十六进制数据。它不是整数或短字符串。

最佳答案

没有从 ntextvarbinary 的直接转换,因此首先转换为 nvarchar(max)

SELECT CAST(CAST(Body AS NVARCHAR(MAX)) AS VARBINARY) AS Body2

ntext 在 SQL2005 中已被弃用。如果可能的话避免使用它。 https://msdn.microsoft.com/en-us/library/ms178158%28v=sql.90%29.aspx

关于sql-server - 将 ntext/text 转换为 hex/binary/varbinary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034623/

相关文章:

sql - 从日期时间获取时间间隔

sql-server - 检查数据库是否处于恢复状态

SQL Server 2008 : How to find trailing spaces

sql-server - 避免从存储过程返回结果集

c# - Active Directory 组添加到 SQL Server

sql - 将多个队列链接到 SQL 服务代理中的同一服务

sql-server - 令人困惑的行为 - 使用向导创建的 SQL Server 信息架构和列

sql-server - 是否可以以编程方式调用 SQL 触发器?

sql-server - 如何根据上次访问时间选择唯一行

sql-server - 要计算为数字的字符串表达式