数据导入问题参考http://www.itpub.net/redirect.php?tid=888849&goto=lastpost

凡是使用T-SQL语句实现的操作, 里面涉及到的文件和目录均是相对SQL Server服务器而言,与哪一台客户机发起的操作无关
例如:
c:/a.xls 肯定是指 SQL Server上的 c:/a.xls
//aa/a/a.xls 肯定是在 SQL Server 服务器上我的电脑中能访问到的 //aa/a/a.xls

因此, 如果你使用 openrowset 来导入数据,则必须保证你的文件在 SQL Server 服务器,或者该服务器能访问的共享目录中. 否则是肯定不行的.

关于这个问题,你可以这样解决:

创建DTS包:
可以选择任意一台有需要导入的文件和能连接目标服务器且安装有SQL Server的电脑来完成此工作.
方法一:
1. 运行SQL Server的"导入和导出数据"工具
2. 根据步骤, 设置好从文件导入数据到指定SQL Server的处理
3. 在"保存、调度和复制包"这步,选择"保存DTS包"--"结构化存储文件"
4. 在接下来的步骤中, 输入DTS包的"名称"和保存的文件名

方法二:
企业管理器--数据转换服务--本地包--新建包
在包设计器里按你的需要设置好数据导入处理(一般包含一个源数据连接(例如 excel/text),一个目标数据连接,一个转换数据任务)
设计好包,单击菜单中的"包"--"保存包", 输入"包名称", 在"位置"中选择"结构化存储文件",并且输入包文件名


在要上传数据的文件所在的电脑中, 安装DTSRUN实用工具(可以通过复制SQL Server服务器上的相关文件或者安装sql server客户端获得)
然后在命令提示符下使用DTSRUN执行你的DTS包(也可以在程序中通过shell调用外部命令来调用DTSRUN):
   DTSRUN /F "DTS包文件名" /N "DTS包名"

如果你希望通过设置共享来解决此问题,参考下面的设置备份文件共享目录的方法来解决问题

下面假设A服务器上的数据库备份到B服务器(限两台服务器在同一局域网内,允许目录共享访问)
1.机器A,B创建一个同名的windows用户,用户组设置为administrators,并设置相同的密码,做为备份文件夹文件夹的有效访问用户,操作:
我的电脑
--控制面板
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户

2.在B机器器上,新建一个共享目录,做为备份文件的存放目录,操作:
我的电脑--D:/ 新建一个目录,名为: BAK
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确定


3.设置 MSSQLSERVER 及 SQLSERVERAGENT 服务的启动用户
开始--程序--管理工具--服务
--右键 MSSQLSERVER
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
--确定
--同样的方法设置 SQLSERVERAGENT

4.在A机器上完成对B机器BAK目录的映射

5.查询分析器中执行下面的语句,检验是否成功:
  exec master..xp_cmdshell 'dir 映射的盘符' 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值