1

我想尝试从 SQL Job 运行我的 C# 控制台应用程序。所以为了测试它,我简单地创建了一个控制台应用程序并使用 C# 和 SMO,编写了几行代码来创建一个数据库。我可以成功运行它并按预期在 SQL Server 中创建一个数据库。

然后在 IDE 中,我点击了,Build-->Publish myProject to E:\myFolder\MakeNewDB24因为那是我的 SQL Server 所在的位置。

上述操作将以下文件复制到指定位置,即 E:\myFolder\MakeNewDB24

  • 申请文件
  • 安装程序
  • 我的项目.application

然后我打开我的 SQL Server,通过 rt. clicking Jobs Folder-->New Job. 我填写了一般的所有信息。在 Steps 中,我在 Command 下,

\\mySQLServer\myFolder\MakeNewDB24\setup.exe

Type: Operating System(CmdExec)
Run as: SQL Server Agent Service Account

我跑了这份工作。当我查看历史时,结果显示为“成功”,

Executed as user: mySQLServer\SYSTEM. The step did not generate any output.  Process Exit Code 0.  The step succeeded.

当时我很开心。但是当我去检查应该创建的数据库时,它不可用,这意味着 SQL JOb 没有完成创建我的数据库的工作。

我不知道我在这里错过了什么?如果有人知道这方面的知识,请与我分享。我真的很想看到我的 SQL 作业完成这项工作。我使用 SQL 作业的原因是因为我所有的自动化任务都从这里开始。谢谢。

4

1 回答 1

0

您的问题几乎肯定与权限有关。您需要检查用于运行 SQL Server 代理作业的用户 ID。我的猜测是它在某处没有权限。

您的作业返回成功的原因是,如果 CMD 作业成功启动 CMD 可执行文件,它们总是返回成功。它与您的代码是否成功无关。

在我不必担心安全性的环境中,我养成了给所有东西管理员权限的不幸习惯,所以我不必担心在哪里需要什么权限。祝你好运。

于 2012-05-24T20:03:10.240 回答