http://expert.csdn.net/Expert/topic/1560/1560496.xml?temp=.7201349

解决方案 »

  1.   

    你是要插入文件吗?用image类型吧!
      

  2.   

    CREATE PROCEDURE sp_textcopy ( 
      @srvname    varchar (30), 
      @login      varchar (30), 
      @password    varchar (30), 
      @dbname      varchar (30), 
      @tbname      varchar (30), 
      @colname    varchar (30), 
      @filename    varchar (30), 
      @whereclause varchar (40), 
      @direction  char(1)) 
    AS 
    DECLARE @exec_str varchar (255) 
    SELECT @exec_str = 
            'textcopy /S ' + @srvname + 
            ' /U ' + @login + 
            ' /P ' + @password + 
            ' /D ' + @dbname + 
            ' /T ' + @tbname + 
            ' /C ' + @colname + 
            ' /W "' + @whereclause + 
            '" /F ' + @filename + 
            ' /' + @direction 
    EXEC master..xp_cmdshell @exec_str  
    下面是一个拷贝图像到SQL Server的pubs数据库的例子, 表名pub_info, 字段名logo,图像文件名picture.bmp,保存到pub_id='0736'记录 
    sp_textcopy @srvname = 'ServerName', 
                @login = 'Login', 
                @password = 'Password', 
                @dbname = 'pubs', 
                @tbname = 'pub_info', 
                @colname = 'logo', 
                @filename = 'c:\picture.bmp', 
                @whereclause = " WHERE pub_id='0736' ", 
                @direction = 'I'
      

  3.   

    create table 表名 (编号 int,image列名 image)
    go
    insert 表名 values(1,0x)
    insert 表名 values(2,0x)
    gosp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.bmp','where 编号=2','I' --注意条件是 编号=2go
      

  4.   

    要看你的结果有没问题,再将此字段的值存为一个文件,看这个文件是否正确就可以了.执行:
    sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\test.bmp','where 编号=2','O' --注意条件是 编号=2看c:\test.bmp与你保存前的文件是否一样就知道了
      

  5.   

    因为在sql server是以二进制形式保存的,所以你看到的结果是:0x0000000000000000000000000...
    这个是正常的.