实现通过'net 映射sql server 读取局域网内其他服务器文件

 

实现环境

应用程序服务器:IIS6.0+windows Server2003

数据库服务器:Sql 2005+windows Server2003

研究原因

以前数据库服务器和web服务器在同一台服务器上,先在特殊原因把数据库服务器和Web服务器放在了不同的位置上,为了实现sql server数据库中数据快速导出,尝试了很多方法,但是当数据量太大以后,导出的速度就特别慢。最终在老大的帮助下,解决了这一问题,就是通过创建文件夹共享和盘符映射。  

文件共享

  1. 开启guest账号:右击我的电脑\管理\用户有个guest,双击之去掉“账户已停用”前面的勾
  2. 删除“拒绝从网络上访问这台计算机”项中的guest账户:运行组策略(gpedit.msc)\本地计算机\计算机配置\windows设置\安全设置\本地策略\用户权利指派\拒绝从网络访问这台计算机。如果其中有guest,则将其删除。(原因是:有时xp的guest是不允许访问共享的)
  3. 取消“使用简单文件共享”方式:资源管理器\工具\文件夹选项\查看\去掉“使用简单文件共享(推荐)”前面的勾。
  4. 右击你所共享的文件,\属性\共享,点击共享

盘符映射   

如果想共享分区直接出线在win7的我的电脑里面,出现共享分区,右键选映射网络驱动器,默认选项直接点确定,共享分区就会出现在win7的我的电脑中了,以后访问直接可以在我的电脑里面好像本地分区一样方便的访问了 。最快导出数据需要应用到sp_cmdshell 存储过程,该存储过程是调用Dos命令实现数据导出。

导出T-sql语句为:EXEC master..xp_cmdshell 'bcp  \“select * from  tableName \” queryout  \"映射盘符路径\" -c -q -U"sa" -P"123"'.这导出的只有表的数据,并没有表头,我们通过创建一个导出表头的数据表来存储数据表头,用同样的方法 导出表头.

eg:

创建映射:exec master..xp_cmdshell 'net use  N: \\192.168.0.123\ddgl  "password" /user:192.168.0.123\administrator  /persistent:yes'
 
删除映射:exec master..xp_cmdshell 'net use  N: /del'
posted @ 2015-06-26 18:02  xd_1989  阅读(616)  评论(0编辑  收藏  举报