在Transact-SQL语句中如何用常量来表示二进制形式的数据?

二进制|数据|语句

  二进制数据可能是图像、声音或任何其他数据。如果我们能够把这些二进制以常量的形式表示,我们就可以直接用Transcat-SQL语句来插入和更新数据表中的这些数据。
  其实,Transcat-SQL已经给我们提供了方法,那就是二进制常量格式。这个格式是以“0x”开头,后面跟若干十六进制数字,每个字节用两位十六进制数来表示。因此,你完全可以将那些图像声音数据转换成这种二进制常量格式,然后用于INSERT或UPDATE语句中。
  不过,这样的二进制常量将很长很长。这样一来SQL语句很难翻看,而且在某些行的长度有限制的编辑器中还会出问题。
  那么,又没有给二进制常量折行的办法呢?
  很遗憾,我查遍Transact-SQL的联机帮助,搜遍了网络,都没有答案。
  难道就真的没办法?
  路从来都是有人走过以后才能成其为路。也许前人曾经走过,而后人不知道。甚至,路本来就在那里,而你敢不敢走?
  于是,冒险开始:
  我将那个长长的二进制常量强行折断,执行,出错...
  在前面一行加“_”,VB的折行符号,出错...
  换成“\n”,C,C++字符串的折行符号,出错...
  用引号引起来,出错...
  换双引号,出错...
  ...,出错...
  ...,出错...
  ...,出错...
  前面一行就加“\”,成功!
  我有点不敢相信,再试,成功!

  稍微惊喜之后,我立刻保持冷静:插入的数据是否正确呢?
  立即,编写程序验证,完全正确!
  

  原来“\”是二进制常量的换行符,路就在那儿!

李战.深圳 2004-10-14

时间: 2024-09-13 21:52:22

在Transact-SQL语句中如何用常量来表示二进制形式的数据?的相关文章

解析SQL语句中Replace INTO与INSERT INTO的不同之处

本篇文章是对SQL语句中Replace INTO与INSERT INTO的不同之处进行了详细的分析介绍,需要的朋友参考下   REPLACE的运行与INSERT很相似.只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除. 注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义.该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行. 所有列

解析sql语句中left

以下是对在sql语句中left_join.inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下   table a(id, type): id     type ---------------------------------- 1      1         2      1          3      2          table b(id, class): id    class -------------------------------

sql 语句中in的用法总结

问题描述 sql 语句中in的用法总结 sql 语句中 in的用法都有什么?在网上说有两种但是只见有一种用法,另一种用法是什么? 解决方案 sql语句Group By用法一则SQL语句中的NOT IN 的优化sql语句判断 case when用法(二) 解决方案二: http://blog.csdn.net/naruto517308294/article/details/8650507 解决方案三: 就一种吧http://www.w3schools.com/sql/sql_in.asp 解决方案

SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别  SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值. 如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入

ireport使用中文的问题(不是乱码,是不认sql语句中的中文)!

问题描述 我在建新的report模板时,使用向导的方式创建,默认的sql语句中如果包含中文,则不能正常显示结果,也没有报错.比如sql语句为"select name,age from user where name = '张三'",则在预览报表的时候,显示不出任何内容,但是在数据库中确实是存在内容的.有没有人遇到同样的问题呢....困扰很久了,帮帮忙! 解决方案 select name,age from user where name = '张三' hibernate3查询参数为中文时

网吧计费-SQL 语句中周六到周日的表达

问题描述 SQL 语句中周六到周日的表达 在做一个网吧收费系统,需要更新网吧收费数据:把周六到周日的收费改到平常的一半,每小时计算.如下图这样写提醒数据库类型转换失败,求教 解决方案 SELECT * FROM your_table WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) IN (0, 1) 解决方案二: 楼主你确定update语句这么写? 不应该是 update record set fee = fee/2 where be

sql 语句中字符类型的转换问题,在线等!!!急!!!

问题描述 sql 语句中字符类型的转换问题,在线等!!!急!!! select 'http//'+ID+'.html' as LINK from A ID的字符类型是bigint的,出现错误提示:"从数据类型 varchar 转换为 bigint 时出错."求解决语法!!! 解决方案 select 'http//'+convert(varchar(20)ID)+'.html' as LINK from A 解决方案二: select 'http//'+cast t(ID as varc

c++-如何利用C++来解析SQL语句中的select语句?

问题描述 如何利用C++来解析SQL语句中的select语句? SELECT * FROM stu WHERE ((Name = "Jack") AND ((Age > 18) OR (Height > 170))) 这是一条SQL语句,怎么用C++解析它,并从内存数据中输出结果?求大神给点思路即可.... 解决方案 你是要解析?还是要执行? 如果要执行SQL语句,需要学习ADO编程,可以百度一下vc ado编程. 解决方案二: 有c++和数据库对接的各种库的,mysql的

求sql语句中带有条件的查询

问题描述 求sql语句中带有条件的查询 我现在有一张users表,有字段uid,uname,address,phone1,phone2,phone3: 我想在这张表中这样查: 主要查phone1,但是如果有一条数据的phone1位空的话,就查phone2,如果phone1,phone2都为空就查phone3,这样的SQL语句要怎么写呢,求大神帮忙解答???? 解决方案 select case when phone1 is null then ( case when phone2 is null