科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道复制Image字段数据到新表同样的字段内(2)

复制Image字段数据到新表同样的字段内(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

最近在写一个升级程序,其中要求将一个旧数据库里面的所有的照片都转到新数据库。

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年8月28日

关键字: image SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
我接下来换成下面的存储过程: &&<K  
<CENTER><ccid_nobr> !um)t|!n  
<table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"> Bdpgw6PK  
<tr> kJ9,Hi5  
    <td bgcolor="e6e6e6" class="code" style="font-size:9pt"> :#5j&_ `  
    <pre><ccid_code> ) OP[XZ  
 

if exists (select * from dbo.sysobjects M0hm~; C=  
where id = object_id(N'[dbo].[sp_imageio]') 7<wt  
and OBJECTPROPERTY(id, N'IsProcedure') = 1) |Br 93@}0  
drop procedure [dbo].[sp_imageio] ~uxaEn8sY  
GO

SET QUOTED_IDENTIFIER OFF h!~i:?#qy  
GO S/v/?iY  
SET ANSI_NULLS OFF Cl-9Y/KQ  
GO

Create   proc   p_binaryIO   )Qi-YI3c  
  @servename   varchar   (30), Y7/ejkkm  
--服务器名称   y)&CV~T  
  @username   varchar   (30),   )88Mk>W  
--用户名   ^ 9NQJCw  
  @password   varchar   (30), mL<a8#-{O  
--密码   ," #N`  
  @tbname   varchar   (500),   xJC1OX{9Z  
--数据库..表名   Z <?Xnj;  
  @fdname   varchar   (30),   %$'/ I\ U  
--字段名   h2`CO(#';  
  @fname   varchar   (1000), N+ 8 N  
--目录+文件名,处理过程中要使用/覆盖:@filename+_temp   ^}4(n  
  @tj   varchar   (1000)='',   )oCsH$.!  
--处理条件.对于数据导入,如果条件中包含@fdname,请指定表名前缀   h'%2(Bb[t  
  @isout   bit=1 --1导出((默认),0导入   [1?lB+x  
  AS y [7j:p4  
  declare   @fname_in   varchar(1000) B,?]oTlm  
--bcp处理应答文件名   qjD+U `  
  ,@fsize   varchar(20) ~cF;h.;V)  
--要处理的文件的大小   [;pQiX-C+  
  ,@m_tbname   varchar(50) " * .g-3Z  
--临时表名   3B\q}Nh0V  
  ,@sql   varchar(8000)    wE4q6c)  
    X6vt% _H  
  --则取得导入文件的大小   w@P}L<.7  
  if   @isout=1 _PN dK%t  
  set   @fsize='0'   $bX@lHbOE7  
  else   X q(c,\X  
  begin   0&H{\>)  
  create   table   #tb(可选名   p}-c+j !  
varchar(20),大小   int   m %$+D&  
  ,创建日期   varchar(10),创建时间   Bung;#4*  
varchar(20)   3bC OY  
  ,上次写操作日期   varchar(10), 4hQ| 1Tq  
上次写操作时间   varchar(20)   /*Ye*Y I  
  ,上次访问日期   varchar(10), Tmb U~  
上次访问时间   varchar(20),特性   int)   R' dU*4S  
  insert   into   #tb   D<_fVW1  
  exec   master..xp_getfiledetails   @fname   2sK<g-8  
  select   @fsize=大小   from   #tb   <XIR-9Y  
  drop   table   #tb   -x!Rj.  
  if   @fsize   is   null   6Yk7kpCg  
  begin   '?\%3?oP  
  print   '文件未找到'   |r@#'^9#  
  return   Z|$M"$p  
  end   lxv;6S!J  
    }0ilOABDg  
  end   PE[" |  
    K 9b-Yag  
  --生成数据处理应答文件   '655&\i8  
  set   @m_tbname=' 37p;H##Eg  
[##temp'+cast(newid()   as   varchar(40))+']'   sU'`=jIJ  
  set   @sql='select   *   into   '+@m_tbname+'   from(   ckU4D>Rt  
  select   null   as   类型   -Z*NP@&6T  
  union   all   select   0   as   前缀   {]]| VYj  
  union   all   select   '+@fsize+'   as   长度   1u<;._5  
  union   all   select   null   as   结束   ;ryd)t]Y   
  union   all   select   null   as   格式   2>_0N!A  
  )   a'   D!!m+]WVB  
  exec(@sql)   ]+ep7,  
  select   @fname_in=@fname+'_temp'   *y4l{N9  
  ,@sql='bcp   "'+@m_tbname+'"   out   "'+@fname_in   WZpz'&=#u  
  +'"   /S"'+@servename   bsDck <lI  
  +case   when   isnull(@username,'')=''   then   '' 54^qX(w  
  else   '"   /U"'+@username   end   .xOdO4  
  +'"   /P"'+isnull(@password,'')+'"   /c'   P`E`_iJ e  
  exec   master..xp_cmdshell   @sql   Yt4^.  
  --删除临时表   *7f i8|Z  
  set   @sql='drop   table   '+@m_tbname   'F9K;_6cb  
  exec(@sql)   c(/'^c&  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章