SqlServer 如何插入图片和导出图片数据

SqlServer 2005开始可以通过OPENROWSET和bcp操作,下面是两种实现方法。

一、 示例1

  • SQL Server import p_w_picpath - SQL Server export p_w_picpath
  • Extract p_w_picpath SQL Server - SQL Server export binary data

1. 创建目标表

USE AdventureWorks;

-- Create p_w_picpath warehouse for importing p_w_picpath into sql database
CREATE TABLE dbo.PhotoLibrary (
  PhotoLibraryID INT IDENTITY ( 1 , 1 ) PRIMARY KEY,
  ImageName        VARCHAR(100),
  Photo            VARBINARY(MAX));

2. 插入图片数据

INSERT INTO dbo.PhotoLibrary ([ImageName]) VALUES ('MadisonAVE.JPG');

UPDATE dbo.PhotoLibrary
SET    Photo = (SELECT *
FROM OPENROWSET(BULK 'e:\p_w_picpath\photo\MadisonAVE.JPG',
SINGLE_BLOB) AS x)
WHERE  [ImageName] = 'MadisonAVE.JPG';

-- Check table population
SELECT * FROM   dbo.PhotoLibrary;

3. 导出图片数据

-- SQL Server export p_w_picpath
DECLARE  @Command NVARCHAR(4000)
-- Keep the command on ONE LINE - SINGLE LINE!!!
SET @Command = 'bcp "SELECT Photo FROM AdventureWorks.dbo.PhotoLibrary" queryout "e:\p_w_picpath\photo\expMadisonAVE.jpg" -T -n -SPROD\SQL2005'
PRINT @Command -- debugging
EXEC xp_cmdshell @Command
GO


 二、 示例2

  • T-SQL Export all p_w_picpaths in table to file system folder
  • Source table: Production.ProductPhoto
  • Destination: K:\data\p_w_picpaths\productphoto\
USE AdventureWorks2008;

DECLARE  @Command       VARCHAR(4000),
         @PhotoID       INT,
         @ImageFileName VARCHAR(128)

DECLARE curPhotoImage CURSOR FOR -- Cursor for each p_w_picpath in table
SELECT ProductPhotoID,
       LargePhotoFileName
FROM   Production.ProductPhoto
WHERE  LargePhotoFileName != 'no_p_w_picpath_available_large.gif'

OPEN curPhotoImage
FETCH NEXT FROM curPhotoImage
INTO @PhotoID,
     @ImageFileName

WHILE (@@FETCH_STATUS = 0) -- Cursor loop 
BEGIN
-- Keep the bcp command on ONE LINE - SINGLE LINE!!!
SET @Command = 'bcp "SELECT LargePhoto FROM AdventureWorks2008.Production.ProductPhoto WHERE ProductPhotoID = ' + convert(VARCHAR,@PhotoID) + '" queryout 
 K:\data\p_w_picpaths\productphoto\' + @ImageFileName + '" -T -n -SHPESTAR'
PRINT @Command – debugging 
 
-- bcp "SELECT LargePhoto FROM AdventureWorks2008.Production.ProductPhoto WHERE ProductPhotoID = 69" queryout "K:\data\p_w_picpaths\productphoto\racer02_black_f_large.gif" -T -n -SHPESTAR
 
EXEC xp_cmdshell @Command     -- Carry out p_w_picpath export to file from db table
FETCH NEXT FROM curPhotoImage
INTO @PhotoID,
         @ImageFileName
END -- cursor loop
CLOSE curPhotoImage
DEALLOCATE curPhotoImage
 
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SQL查询器流传着很多软件,但相信此软件会有它的特别之处,本软件是经多名工程师测试。功能以及效率是有见证。本软件体积优势非常轻巧功能强大,1.7M的大小携带方便。如有建议请发邮件到[email protected],谢谢你的宝贵建议。话不多说,请看以下功能介绍! 本软件所有功能完全免费。非常大家的支持!!! 特色功能: (一) 线程查询数据,可看查询结果完成的进度。 (二) 语句编辑强大的语法自动填充功能,可快速填充表或字段 (三) EXCEL导出后台完成。可选中语句导出EXCEL内容! (四) 自带远程桌面控制功能 (五) 自定义保存二进制数据内容成文件 (六) 查询结果可直接显示字段类型等信息 本版本调整了: 1. 启动程序更快 2. 加入远程桌面远程控制功能 3. 加入格式化JSON功能 4. 加入查询结果二进制内容导批量导出成文件 5. 查询显示中可显示对应的字段类型及长度等信息 新增功能: 1. 界面大量调整把所有右击出来的菜单都显示在对应的功能位置上,操作上来更新顺手 2. 高级查询的窗口全部显示置前,整理排序窗口 3. 主查询窗口的求和功能和排序功能 4. 高级查询加入,可筛选,可分组统计。可汇总 5. 语句编辑框中直接导出查询结果到EXCEL 一、主功能概述 1.F8,F9 内容自动填充 2.预计表总记录数 3.预计表前N行记录 4.生成表字段以豆号分割 字段1,字段2....可自定义换行数量 5.显示表的详细信息,字段长度。可直接在查询结果中显示。 6.对查询内容导出EXCEL,高级结果可快速导出。后台处理不会卡程序。在导出大量的数据时可以操作其他操作。软件在导出完成后会检查EXCEL的行数完整性。可以EXCEL信息中查阅。 7.高级结果可拖放分组统计内容 8.对查询结果生成插入语句。可方便夸平台的数据插入 9.查询结果中快速定位查找内容字段位置,可模糊查找 10.可执行存储过程。执行过程中会在对应的GO中报错。可以得知是那行的错误 11.ctrl+1~5 的快捷语句记录。在使用过程中可以按对应的快捷键,在语句编号窗口中插入。临时代码记录10条。可方便用户临时记录编号语句。 12.直接对内容生成IN语句方便查询。 13.快速查询数据库中的表信息,快速查询对应的的字段,可直接筛选想要的字段内容。此功能可让使用者快速知道对应的字段类型! 14.可直接对字段列表的字段进行操作。插入,修改,删除!! 15.查询结果可以直接显示数据库的二进制图片内容 16.排量更新后台,此功能可以对当你手上有大量后台的时候不需要一个个去打开执行,只需要插入到软件的批量更新窗口中执行。执行成功会OK,编辑后再执行,直到全部OK。Ok过的不需重量执行放心! 17.文件传送。可以利用这软件传送文件。如果两个软件连到同一个SQL服务器上。此两个电脑可以互传文件了! 18.EXCEL导入数据库。可以把对应的EXCEL导入到数据库中。EXCEL头为列名。表名定义 19.远程复制,粘贴文件! 20.SQL中实用的语句帮助文档! 二、辅助功能 1.对IP或域名进行端口测试 2.获取当前外网IP地址 3.直接远程连接当前连接IP 4.网整测试当前连接的情况 5.格式化JSON格式内容 联系方式:[email protected]或可直接加QQ:75934092 510567321
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个C:.│ sqlserver2000.txt│ ├─第01章│ 1.9.1 设置内存选项.sql│ 1.9.2(2) 使用文件及文件组.sql│ 1.9.2(3) 调整tempdb数据库的文件属性.sql│ ├─第02章│ │ 2.1 日期概念理解中的一些测试.sql│ │ 2.2.4 CONVERT在日期转换中的使用示例.sql│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql│ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql│ │ 2.4.1 日期格式化处理.sql│ │ 2.4.2 日期推算处理.sql│ │ 2.4.3 特殊日期加减函数.sql│ │ 2.5.1 查询指定日期段内过生日的人员.sql│ │ 2.5.2 生成日期列表的函数.sql│ │ 2.5.3 工作日处理函数(标准节假日).sql│ │ 2.5.3 工作日处理函数(自定义节假日).sql│ │ 2.5.4 计算工作时间的函数.sql│ │ │ └─其他│ 交叉表.sql│ 任意两个时间之间的星期几的次数-横.sql│ 任意两个时间之间的星期几的次数-纵.sql│ 复杂年月处理.sql│ 统计--交叉表+日期+优先.sql│ ├─第03章│ │ 3.2 各种字符串分拆处理函数.sql│ │ 3.3 各种字符串合并处理示例.sql│ │ 3.4.1 分段截取函数.sql│ │ 3.4.2 分段更新函数.sql│ │ 3.4.3 IP地址处理函数.sql│ │ 3.5.1 字符串比较函数.sql│ │ 3.5.2 字符串并集&交集处理示例.sql│ │ 3.5.3 字符串分拆并统计的处理示例.sql│ │ 3.5.5 字符串处理示例--列车车次查询.sql│ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql│ │ 3.6.3 动态参数的存储过程示例.sql│ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql│ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql│ │ 3.7.4 text与image字段转换处理示例.sql│ │ 3.7.5 ntext字段的REPLACE处理示例.sql│ │ │ └─其他│ varbinary转换成字符串.sql│ 关键字搜索.sql│ 分解公式.sql│ 字符串分拆--格式化.sql│ 得到一个字符串在另一个字符串中出现的次数.sql│ 数字转换成十六进制.sql│ 比较第一与第二个字符串,是否有连续的5个字符相同.sql│ 生成查询的模糊匹配字符串.sql│ 简繁转换.sql│ 统计一个表中某个字符出现最多的字母.sql│ 非法字符串处理.sql│ ├─第04章│ │ 4.1.5 在各种处理中应用排序规则的示例.sql│ │ 4.2.1 排序规则在拼音处理中的应用.sql│ │ 4.2.2 排序规则在全角与半角处理中的应用.sql│ │ │ └─其他│ 生成GB2312汉字表.sql│ 生成GBK汉字表.sql│ 自动获取汉字笔画.sql│ ├─第05章│ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql│ │ 5.1.1 修改标识值的示例.sql│ │ 5.1.1 标识列与普通列互相转换的示例.sql│ │ 5.2.1 查表法按日期生成流水号的示例.sql│ │ 5.2.1 查表法生成流水号的示例.sql│ │ 5.2.2 使用编号表按日期生成流水号的示例.sql│ │ 5.2.2 使用编号表生成流水号的示例.sql│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql│ │ 5.2.3 生成纯数字随机编号的示例.sql│ │ 5.3.2 融合了补号处理的编号生成处理示例.sql│ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql│ │ 5.3.3 使用临时表进行编号重排的处理示例.sql│ │ 5.3.3 使用子查询进行编号重排的处理示例.sql│ │ 5.3.3 名次查询的处理示例.sql│ │ 5.4.1 查询已用编号分布情况的示例(临时表法).sql│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql│ │ 5.4.2 查询缺号分布情况的示例.sql│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql│ │ 5.4.4 缺勤天数统计的处理示例.sql│ │ │ └─其他│ -补位法.sql│ 以另一个表的字段做默认值.sql│ 以另一表的字段生成编号.sql│ 关联部门流水号.sql│ 十六进制.sql│ 学号.sql│ 开票统计--涉及到连号处理.sql│ 新编号查询示例(分类查询).sql│ 新编号查询示例.sql│ 日期流水号.sql│ 材料流水号.sql│ 流水号.sql│ 箱编号连号处理.sql│ 类别自动生成编号示例.sql│ 自已做标识列的例子.sql│ 触发器自动维护已用&未用编号.sql│ 连续编号.sql│ 防止重复的示例.sql│ 项目编号=各项目独立流水号&各年不同.sql│ ├─第06章│ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql│ │ 6.1.2 各种联接的使用示例.sql│ │ 6.1.2 多表联结导致记录重复的示例.sql│ │ 6.1.3 使用UNION实现库存报表的示例.sql│ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql│ │ 6.1.6 随机出题的示例.sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql│ │ 6.2.1 ROLLUP实现的分级汇总示例.sql│ │ 6.2.1 UNION ALL实现的分级汇总示例.sql│ │ 6.3.1 简单的交叉报表处理示例.sql│ │ 6.3.2 多列转换为行的交叉报表处理示例.sql│ │ 6.3.3 行值动态变化的交叉报表处理示例(转换多列).sql│ │ 6.3.3 行值动态变化的交叉报表处理示例.sql│ │ 6.3.4 化解字符串不能超过8000的方法.sql│ │ 6.3.5 特殊的交叉报表处理示例.sql│ │ 6.4.1 库存明细帐处理示例(包含结存数).sql│ │ 6.4.1 库存明细帐处理示例.sql│ │ 6.4.2 同期及上期数据对比处理示例.sql│ │ 6.4.3 动态分组处理示例.sql│ │ 6.4.4 排行榜处理示例.sql│ │ │ └─其他│ 交叉表--复杂名次.sql│ 交叉表-优先级处理.sql│ 交叉表分析.sql│ 分级汇总.sql│ 分组交叉表.sql│ 列转行.sql│ 固定行列报表.sql│ 复杂交叉表.sql│ 复杂交叉表1.sql│ 多栏显示.sql│ 日期+星期+时间.sql│ 格式化报表.sql│ 横转竖-1.sql│ 横转竖-字段名.sql│ 横转竖-生成字段名.sql│ 横转竖.sql│ 行列互换的复杂交叉表.sql│ 限制列数的交叉表.sql│ ├─第07章│ │ 7.1 splitpage.asp│ │ 7.2.1 TOP n 实现的通用分页存储过程.sql│ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql│ │ 7.2.3 临时表缓存实现的通用分页存储过程.sql│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql│ │ 7.3.1 实现随机分页的通用分页存储过程.sql│ │ 7.3.2 根据分类表实现的分页存储过程.sql│ │ │ └─其他│ sp_cursor.sql│ 基本方法.sql│ ├─第08章│ │ 8.1.2 树形数据分级汇总示例.sql│ │ 8.1.3 树形数据编号重排的通用存储过程.sql│ │ 8.1.3 树形数据编号重排示例.sql│ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql│ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql│ │ 8.1.5 删除节点处理的通用存储过程.sql│ │ 8.1.5 移动节点处理的通用存储过程.sql│ │ 8.2.2 树形数据层次显示处理示例.sql│ │ 8.2.2 树形数据广度排序处理示例.sql│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql│ │ 8.2.2 树形数据深度排序处理示例(递归法).sql│ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql│ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql│ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql│ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql│ │ 8.2.8 逐级汇总示例(用户定义函数法).sql│ │ 8.3.1 产品配件清单查询示例.sql│ │ 8.3.2 最短乘车路线查询示例.sql│ │ │ └─其他│ xml菜单.sql│ 宝塔形数据的处理-1.sql│ 宝塔形数据的处理.sql│ 树形数据生成xml.sql│ ├─第09章│ │ 9.1.3 访问外部数据源方法总结.sql│ │ 9.5.1 二进制文件存取示例(T-SQL).sql│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs│ │ a.txt│ │ Schema.ini│ │ │ └─其他│ bcp-数据导入导出(全).sql│ bcp-数据导入导出-二进制文件.sql│ bcp-数据导出为文件.sql│ bcp表数据存为XML.sql│ SQL Server到Oracle连接服务器的实现.sql│ SQL Server到SQLBASE连接服务器的实现.sql│ SQL Server到SYBASE连接服务器的实现.sql│ sql导出mysql.sql│ textcopy实现文件存取.sql│ Vb程序实现文件存取.sql│ 导入文本文件时如何指定字段类型.sql│ 导出northwind中Employees的图像.sql│ 将某个目录上的Excel表,导入到数据库中.sql│ 数据导入导出基本方法.sql│ 用ASP上传&下载文件.sql
平台:ASP+ACCESS 官方主页:http://www.freshbox.cn或者http://www.kawebs.com 功能列表: eMart网店系统是freshbox.cn历经半年时间独立开发的一套大型的B2C电子商务平台,系统基于网聚购物系统2.2核心,加入了模板系统和静态页面缓存,并且完全兼容网聚2.2的栏目系统。在access版【下载】的基础上增加了sqlserver【下载】数据库平台的解决方案,可以更加灵活高效的适用于各种商业B2C的场合 系统更加注重于运行的稳定和安全性,保障了您业务的正常进行,当然您可以在效率和功能的杠杆上轻松寻得适合您网站的平衡点。系统的在线升级系统保障了您在的一时间获得我们最新的补丁和升级。我们会在最短的时间内响应用户的帮助请求,为您排除故障或者寻求替代方案。 EMart系统已将底层核心代码封装为DLL组件 模版系统: ·系统最具特色的模块,可以达到底层程序与前台页面分离的效果,对页面的修改无需改动任何程序代码。 ·完善的标签系统,支持自定义标签,公用标签,快捷标签,动态标签,静态标签等等,并且支持标签内的vbs语法,原则上运用这些标签可以制作出任何想要的页面效果。 ·兼容原来的栏目系统,可以很方便的插入一个栏目或者一个栏目组到页面的任何位置。 ·底层模版解析程序具有非常高的效率,稳定性和容错性,即使模版中有错误的标签也不会影响页面的显示。 ·所有的标签都可以缓存起来,并可以设置其刷新周期,更加提高了模版的灵活性。 ·标签系统支持用户自定义,您可以自己定义标签,当然系统内置的多达数百个的标签基本上可以胜任所有的工作。 ·专业智能化的模版编辑环境,支持代码染色,标签库,可以让插入标签的工作变得简单而直接。 ·成熟的模版管理系统,支持模版方案的导出和导入,您可以直接导入他人的模版方案,也可以将您的模版方案导出以作备份。 ·如果您是页面设计人员或者需要设计个性化的页面,要制作一套精美的模版是很容易的事情,当然我们会有相当详细的帮助文档,它可以引导您更加快速的编辑一套适合您需要的模版。 ·具有良好的伸缩性,不仅可以满足一般的设计需求也可以适应高级页面设计人员的需要。 商品系统: ·无限级商品分类,自定义开关和权限 ·商品自定义扩展属性,支持5种字段类型 ·商品价格历史,前台实时价格曲线显示 ·每个商品支持多个图片,多侧面展示商品魅力 ·商品图片自动按原始比例压缩显示,无任何变形,并可以自定义显示大小 ·和用户类型整合的商品价格体系,支持自定义价格系统 ·支持完整的商品属性,开关,库存,销售量,人气,积分奖励,规格,单位,折扣等等,当然您还可以加入自定义的商品属性,而且商品的自定义属性都可以整合到搜索系统。 ·商品的详细介绍支持HTML语言编辑,并提供了专业的在线编辑环境。 ·您可以自定义支付方式和送货方式及相应的属性和费用标准。 ·不仅支持传统的支付手段同时也支持网银在线,支付宝等在线的支付方式。 ·支持全站的货币单位自定义,以及相应的兑换比率设置。 ·标准美观的购物车收藏夹。 ·专业级的订单管理模块,统一流程的订单生成业务逻辑,更加安全和简洁,您可以更加实时且直观的追踪每笔订单的状态。 用户系统: ·可以自定义任意种用户类型,并且每种用户类型支持多个高级属性,比如开关,权限,升级审核,限制注册人数,同一ip限制注册人数,注册条款,送货费用优惠,商品价格优惠,发送的邮件的内容等等,同时我们提供了一个特色的功能就是可以自定义注册选项,您可以随意加入更多的注册选项。 ·完整丰富的客户信息,追踪客户在您网站的所有业务活动细节,客户订单,客户账户,积分,一切尽在掌握。 ·支持电子帐户,虚拟货币,客户可以通过在线充值来增加账户存款,同时也可以把积分转化为账户存款。 ·更加安全的用户数据保护,可以在线取回密码,还可以锁定登陆ip,最大程度的保障客户的利益。 ·同商品系统整合的积分系统,购买商品可以增加积分,同时积分可以用来升级其用户类型和转换为账户存款,当然账户存款也可以转换为积分,让系统的客户权限管理更加灵活。 ·完善的客户交易管理系统,客户的每次业务动作都可以完整实时的记录下来,保证您不会漏掉任何细节。 信息系统: ·无限级新闻分类,更加灵活的划分您的信息系统版块,可以构建更加专业的新闻咨询系统。 ·专业的新闻编辑环境,可以设置新闻摘要,开关,浏览量,并可以随意挂接新闻到新的分类。 ·专业的在线HTML编辑环境,更方便更加智能的插入本地图片和服务器上的图片或者flash流媒体信息。所见即所得。 ·基于新闻系统的帮助系统,继承了新闻系统的所有属性,用于构建专业系统的技术支持体系。 ·通用的评论系统,支持新闻评论,商品评论,并且可以很方便的扩充其接口。 ·您可以控制新闻评论和商品评论的开关和权限,当然也

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值