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