SQL 数据转换问题(image 转成 nvarchar)

No4000 2008-11-29 01:06:27
DECLARE @Sql nvarchar(500)
SET @Sql = N'UpDate '+ @TableName + ' Set '+ @ImgaeColumnName + '=' + cast(@Image as nvarchar) + ' as nvarchar(500)) Where '+ @RowWithIDName + '=' + @RowID


怎么把@Image(为image类型)转换成nvarchar类型,能使得这条语句在存储过程正确执行?
...全文
948 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinhl99 2008-11-29
  • 打赏
  • 举报
回复
image 只能在 binary 与 varbinary 之间转换,而且有限制的。
  • 打赏
  • 举报
回复
变量不能定义为text、ntext,image类型吧。

data_type

是任何由系统提供的或用户定义的数据类型。变量不能是 text、ntext 或 image 数据类型

所以你这个是不可以的
等不到来世 2008-11-29
  • 打赏
  • 举报
回复
DECLARE @Sql nvarchar(500)
SET @Sql = N'UpDate '+ @TableName
+ ' Set '+ @ImgaeColumnName + '=cast(cast(' + cast(@Image as nvarchar) + ' as varbinary(max)) as nvarchar(500)) Where '
+ @RowWithIDName + '=' + rtrim(@RowID)
CN_SQL 2008-11-29
  • 打赏
  • 举报
回复
无解
等不到来世 2008-11-29
  • 打赏
  • 举报
回复
先转换为varbinary,再转成nvarchar:
create table tb(id int identity(1,1),img image)
insert tb values(0x1111)

select cast(cast(img as varbinary(max)) as nvarchar(max)) from tb
/*
--------


(1 行受影响)
*/
drop table tb
No4000 2008-11-29
  • 打赏
  • 举报
回复
cast 不能用, convert不能用
等不到来世 2008-11-29
  • 打赏
  • 举报
回复
DECLARE @Sql nvarchar(500)
SET @Sql = N'UpDate '+ @TableName + ' Set '+ @ImgaeColumnName + '=cast(' + cast(@Image as nvarchar) + ' as nvarchar(500)) Where '+ @RowWithIDName + '=' + rtrim(@RowID)
  • 打赏
  • 举报
回复
变量不能定义为text、ntext,image类型吧。

data_type

是任何由系统提供的或用户定义的数据类型。变量不能是 text、ntext 或 image 数据类型

所以你这个是不可以的
luoqun_ncs 2008-11-29
  • 打赏
  • 举报
回复
convert()

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧