![MSsql 2008 sql代理任务输出到网络驱动器](https://linux22.com/image/604893/MSsql%202008%20sql%E4%BB%A3%E7%90%86%E4%BB%BB%E5%8A%A1%E8%BE%93%E5%87%BA%E5%88%B0%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8%E5%99%A8.png)
我正在尝试让 SQL 代理作业(任务)运行我的查询,然后将输出文件放入网络驱动器。当我选择输出文件时,列出的唯一驱动器是本地驱动器。我对作业和 MSSQL 还不熟悉,但对 MySQL 很了解。
如果我选择本地磁盘,任务就顺利完成。如果我手动将映射驱动器的驱动器号放入输出文件字段,则什么也不会发生。
谢谢
答案1
在 Windows 中,驱动器映射基于用户帐户。这意味着 SQL Agent 运行的用户帐户无法看到其他用户(如用于管理服务器的帐户)创建的驱动器映射。
一种解决方法是使用 UNC 路径名指向共享。只需在作业步骤属性对话框中的“输出文件:”字段中输入您喜欢的任何文件路径即可。您可能想要想出某种命名约定,以使服务器名称、作业名称和步骤保持一致。例如:\superbigfileserver\sqllogshare\sqlagentlogs\dbinstancename\a_sql_job_name.step_number.txt
当然,用于SQL Agent的帐户应该具有足够的权限来访问相关的共享,路径和文件。
如果您担心文件服务器的名称会发生变化,请通过 DNS 设置 CNAME 并使用该名称代替“真实”文件服务器名称。