关于Mssql中的varbinary的使用
来源:互联网 发布:北上广打拼 知乎 编辑:程序博客网 时间:2024/06/14 02:05
在一项目中用到MSSQL中的varbinary,在使用存储时发现下面问题
执行语句
DECLARE @SQLTxt VARCHAR(400), @AlarmContent VARBINARY(400)
SET @AlarmContent = 0xD4040002
SET @SQLTxt =
'SELECT CAST(''' + CAST(@AlarmContent AS VARCHAR(400)) + ''' AS VARBINARY(400))'
print @SQLTxt
EXEC(@SQLTxt)
结果如下
----------------------------------
0x3F0002
(1 行受影响)
把我传入的数据给改变了,但是下面这样就不更改
执行语句
DECLARE @byte1 VARBINARY(400), @str VARCHAR(400), @byte2 VARBINARY(400)
SET @byte1 = 0xD4040002
SELECT @byte1
SET @str = CAST(@byte1 AS VARCHAR(400))
SELECT @str
SET @byte2 = CAST(@str AS VARBINARY(400))
SELECT @byte2
结果如下
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0xD4040002
(1 行受影响)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
?
(1 行受影响)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0xD4040002
(1 行受影响)
郁闷中......
由于最近状态太差(估计是我太懒了,哈哈),交一个哥们找问题
然后参考各个资料
http://support.microsoft.com/kb/104829/zh-cn
http://msdn.microsoft.com/zh-cn/library/ms187928.aspx
但是通过Convert转换似乎和MSDN上使用Style不同结果,不知道MSDN上Convert的Style是啥意思。
解决:
最后终于找到一个函数(MSSQL2005)master.dbo.fn_varbintohexstr
发现以前的思路是有问题,先转换成varchar,再转换成varbinary,傻了...
目的是组sql语句,其实可以直接把varbinary转换成16进制字符,这样使用master.dbo.fn_varbintohexstr就可以搞定的。因为在语句中是可以直接使用binary,如select 0xD4040002,这样就避免转换发生改变的问题。但是至于数据为什么会发生变化,就不明白了
- 关于Mssql中的varbinary的使用
- sql server中的varbinary的使用
- MSSQL varbinary转换成字符串
- 关于国外服务器使用mssql乱码的问题
- binary,varbinary,image的区别
- [MSSQL]游标的使用
- MSSQL游标的使用
- MSSQL游标的使用
- MSSQL 事务的使用
- 关于MSSQL数据库的字段
- 关于mssql的全文搜索
- 关于mssql的学习体会,仅供参考!
- 关于jTDS连接Mssql使用fetchsize功能
- 关于mssql
- Mssql merge表达式的使用
- Varbinary转换成等长的varchar
- BINARY和VARBINARY类型的区别
- 关于MSSQL的decimal(numeric)、money、float的使用以及区别
- 函数递归
- C#网络应用编程基础练习题与答案(转载)
- 在Linux下如何快速搭建安全的FTP服务器
- 追MM和设计模式
- C++ 运算符优先级列表
- 关于Mssql中的varbinary的使用
- 读书笔记 - Derby Reference Manual(二)
- 360卫士本地提权漏洞——后门利用程序
- 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务
- AWT与Swing的实现原理差别
- struts中ActionForward的也可以这样用
- Eclipse安装CDT,Build时出现Internal Build错误解决方法
- oracle10g新特性——物化视图 Advisor(中文称为顾问
- tomcat域名绑定