【问题标题】:Script to delete records from SQL Server database on Azure using webjobs使用 webjobs 从 Azure 上的 SQL Server 数据库中删除记录的脚本
【发布时间】:2020-04-20 21:16:19
【问题描述】:

我想每天在免费 Azure 门户帐户上的 Microsoft SQL Server 数据库上运行以下命令,以删除从现在起超过 7 天的记录。

USE [myMSSqlDatabaseName]
GO

DELETE FROM [dbo].[myTableName] 
WHERE [myDateFieldName] < GETDATE() - 7;

我在我的免费 Azure 门户上设置了一个计划的网络作业,我缺少的是他们希望我上传一个应该能够运行此命令的脚本。脚本可以有多种类型,例如 .cmd、.bat、.exe(使用 Windows cmd)、.py 等。

我无法找出如何将我的命令转换为正在运行的脚本。我的首选是 Windows cmd 脚本或 Phyton 脚本,因为我一直在使用 Python 和 Windows。

有什么线索吗?

【问题讨论】:

  • GETDATE() - 7 - 不是很清楚 - 当前日期减 7 .... 7 什么?年??光年??您应该始终非常明确,因此请改用DATEADD(DAY, -7, SYSDATETIME())现在很清楚,您的意思是在当前日期和时间之前 7 ...
  • 我认为逻辑应用程序将是一个更好的选择。调用按计划执行此任务的存储过程。

标签: azure azure-sql-database azure-webjobs


【解决方案1】:

这个网站让我开始,浏览到标题:

使用 PowerShell 连接到 Azure SQL 数据库

终于有一个真正做到这一点的人 - here

附言我要连接的脚本: (请注意,首先我必须谷歌如何允许 powershell 脚本在我的电脑上运行。因为默认情况下这样做会出错,你需要谷歌设置执行策略)。 ...然后我运行了命令 Install-Module Az ,并注意,在以管理员身份运行 powershell 时这样做了。请注意,powershell 需要在更改后重新启动,以便它们生效... 然后我运行了 powershell 命令:Connect-AzAccount(这已连接到我的帐户。也许没有必要,但让我确信我已连接)。

【讨论】:

    【解决方案2】:

    我打开香槟瓶太早了。 - 事情是,我可以从我的计算机本地运行这个脚本。但是,如果我将其上传到网络作业,则网络作业不会完成它的工作。 - 在日志中它声称运行成功,但仔细观察日志,可以看到它没有。

    [04/20/2020 08:30:57 > fdc8de: SYS INFO] 状态更改为正在初始化 [04/20/2020 08:30:57 > fdc8de: SYS INFO] 使用脚本主机 - 'PowerShellScriptHost' 运行脚本'ps.ps1' [04/20/2020 08:30:57 > fdc8de: SYS INFO] 状态更改为正在运行 [04/20/2020 08:30:59 > fdc8de: ERR ] Import-Module : 未加载指定的模块“Az.Sql”,因为没有有效 [04/20/2020 08:30:59 > fdc8de: ERR ] 模块文件在任何模块目录中找到。 [04/20/2020 08:30:59 > fdc8de: ERR ] 在 D:\local\Temp\jobs\triggered\x\f3qupf1g.kch\ps.ps1:1 char:1 [04/20/2020 08:30:59 > fdc8de: ERR ] + 导入模块 Az.Sql -Force [04/20/2020 08:30:59 > fdc8de: ERR ] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [04/20/2020 08:30:59 > fdc8de: ERR ] + CategoryInfo : ResourceUnavailable: (Az.Sql:String) [Import-Mod [04/20/2020 08:30:59 > fdc8de: ERR ] ule],FileNotFoundException [04/20/2020 08:30:59 > fdc8de: ERR ] + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Comm [04/20/2020 08:30:59 > fdc8de: ERR ] ands.ImportModuleCommand [04/20/2020 08:30:59 > fdc8de: ERR ]
    [04/20/2020 08:31:03 > fdc8de: ERR ] Invoke-Sqlcmd : 术语“Invoke-Sqlcmd”未被识别为 [04/20/2020 08:31:03 > fdc8de: ERR ] cmdlet、函数、脚本文件或可运行的程序。检查拼写 [04/20/2020 08:31:03 > fdc8de: ERR ] 名称,或者如果包含路径,请验证路径是否正确并重试。 [04/20/2020 08:31:03 > fdc8de: ERR ] 在 D:\local\Temp\jobs\triggered\x\f3qupf1g.kch\ps.ps1:18 char:3 [04/20/2020 08:31:03 > fdc8de: ERR ] + Invoke-Sqlcmd @Params [04/20/2020 08:31:03 > fdc8de: ERR ] + ~~~~~~~~~~~~~ [04/20/2020 08:31:03 > fdc8de: ERR ] + CategoryInfo : ObjectNotFound: (Invoke-Sqlcmd:String) [], 逗号 [04/20/2020 08:31:03 > fdc8de: ERR] ndNotFoundException [04/20/2020 08:31:03 > fdc8de: ERR ] + FullyQualifiedErrorId : CommandNotFoundException [04/20/2020 08:31:03 > fdc8de: ERR ]
    [04/20/2020 08:31:04 > fdc8de: SYS INFO] 状态更改为成功

    【讨论】:

      猜你喜欢
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多