【问题标题】:SQL INSERT - how to execute a list of queries automaticallySQL INSERT - 如何自动执行查询列表
【发布时间】:2014-10-11 03:15:53
【问题描述】:

我从来没有这样做过,如果我很含糊,请道歉。

场景

我需要运行一长串INSERT SQL 查询。这些数据被插入到一个表中以供 Web 服务的客户端处理,即数据被上传到不同的服务器上,并且随着进程的进行,表会被清除。

我尝试过的

我试图像这样为每个Insert 语句添加延迟

WAITFOR DELAY '00:30:00'

INSERT INTO TargetTable (TableName1, Id, Type) SELECT 'tablename1', ID1 , 1 FROM tablename1

WAITFOR DELAY '00:30:00'

INSERT INTO TargetTable (TableName2, Id, Type) SELECT 'tablename2', ID2 , 1 FROM tablename2

但这样做的缺点是假设查询将在 30 分钟内完成执行,但事实可能并非如此。

问题

我过去曾手动运行查询,但这非常乏味。所以我想写一个程序来为我做这件事。 程序应该:

  1. 按给定顺序运行每个查询

  2. 等待运行下一个查询,直到前一个查询处理完毕,即直到目标表被清除

我正在考虑一个脚本,我可以将它复制到命令提示符控制台、SQL 本身或其他任何东西中并运行。

我该怎么做? Windows 服务应用程序? Powershell 函数?

如果有任何建议让我开始,我将不胜感激。

【问题讨论】:

  • 您可以只使用 DOS 批处理文件和 OSQL 命令行 SQL 工具来提交您的 SQL 吗?有必要让这更复杂吗?
  • @PhillipH 嗨,绝对没有必要让这变得比必要的更复杂。之前写过一个批处理文件,但是还是第一次听说OSQL这个工具。请您详细说明一下吗?
  • 这在此处technet.microsoft.com/en-us/library/aa214012(v=sql.80).aspx 进行了记录,并随 SQL Server 提供。它允许您连接到服务器并针对服务器执行 T-SQL。它相当于 SQL Server 企业管理器中的查询窗口的命令行。
  • 我明白了,谢谢。但是我如何确保在运行下一个查询之前处理每个查询?

标签: sql sql-server powershell automation windows-services


【解决方案1】:

【讨论】:

  • 谢谢,但我不想在服务器上添加其他服务,因为服务器不是我的。
猜你喜欢
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 2011-12-09
  • 2012-06-28
  • 2014-07-31
  • 2016-10-16
  • 2013-07-08
相关资源
最近更新 更多