0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Devart:如何通过跨多个数据库自动执行数据库脚本来节省时间和减少错误

哲想软件 来源:哲想软件 2023-04-06 09:49 次阅读

随着企业的增长,它们的数据库也在增长。随着需要处理的数据量不断增加,管理多个数据库并在所有数据库中执行脚本可能会变得难以应付。这可能导致错误和低效率,浪费宝贵的时间和资源。

幸运的是,自动化可以为这些问题提供解决方案。通过跨多个目标自动执行数据库脚本,企业可以节省时间、减少错误并提高工作效率。本指南将探讨自动化数据库脚本执行的好处,并提供关于如何在组织中实现自动化的实用技巧。在本文结束时,您将清楚地了解自动化如何简化数据库管理并改进业务操作。

ab4045a2-d418-11ed-bfe3-dac502259ad0.png

内容

方法1:使用dbForgeStudio和命令行对多个数据库执行多个脚本

  • 准备好环境

  • 创建.bat文件

  • 执行.bat文件

方法2:从dbForgeStudio的接口执行针对多个数据库的脚本

结论

方法1:使用dbForgeStudio和命令行对多个数据库执行多个脚本

步骤1:准备环境

这一步涉及创建两个文本文件。第一个将包含执行脚本所需的连接和数据库列表,而第二个将存储需要针对这些数据库执行的SQL脚本列表。

创建一个databases.txt文件

1.1启动第三方文本编辑器,如记事本。

1.2输入源服务器名称、数据库名称、用户名和密码,以“,”分隔。该列表可以根据需要包含任意数量的服务器和数据库。下面是一个你可以使用的模板:

aba79b12-d418-11ed-bfe3-dac502259ad0.png

1.3使用合适的名称和文件扩展名保存文本文件,例如“Target_Databases.txt”。

abbcd784-d418-11ed-bfe3-dac502259ad0.png

创建一个scripts.txt文件

1.4打开第三方文本编辑器(如记事本)。

1.5输入您希望执行的SQL脚本的路径,以及它们各自的编码,用逗号分隔。您可以根据以下模板向列表中添加任意数量的脚本。

abda4580-d418-11ed-bfe3-dac502259ad0.png

1.6保存文本文件。

步骤2:创建一个.bat文件

接下来,我们需要用脚本创建一个.bat文件,该脚本将启动dbForgeStudio for SQLServer,针对Target_Databases.txt文件中指定的数据库执行SQL_files.txt文件中指定的脚本。

2.1打开文本编辑器,如“记事本”。

2.2输入针对多个数据库执行多个SQL脚本的脚本,并根据需要进行调整。下面的例子显示了脚本结构:

ac032428-d418-11ed-bfe3-dac502259ad0.png

脚本中:

Target_Databases.txt是列出目标服务器、数据库和要连接到它们的凭证的文件的名称。

SQL_files.txt是存储要执行的SQL脚本列表的文件名。

请注意

“SetRuntool”为dbForgeStudio for SQL Server的默认安装路径。如果您更改了它,您将需要指定工具的.com文件的正确路径。

2.3保存为“。bat”文件。

步骤3:执行.bat文件

现在,您所需要做的就是运行.bat文件。

ac1e0e0a-d418-11ed-bfe3-dac502259ad0.png

正如您所看到的,已经针对我们指定的数据库成功执行了脚本。令人惊讶的是,如此大规模的惊人结果只需要如此少的准备。

方法2:从dbForgeStudio的接口跨多个目标执行脚本

dbForgeStudio for SQL Server允许您快速有效地跨多个数据库执行脚本。为此,只需右键单击SQL文档中的任意位置并选择RunOn Multiple Targets。

ac9221aa-d418-11ed-bfe3-dac502259ad0.png

将打开RunOn Multiple Targets向导。

acbfb4f8-d418-11ed-bfe3-dac502259ad0.png

让我们针对选定的数据库执行脚本。

acdab032-d418-11ed-bfe3-dac502259ad0.png

脚本已经成功执行,并且已经在目标数据库中创建了Users表。如果使用dbForgeStudio for SQL Server对多个数据库运行脚本,该工具将为每个数据库打开单独的SQL文档。这允许您确认查询完成状态。

在这里,您可以指定数据库服务器连接并提供脚本文件的路径,或者直接从SSMSSQL文档执行脚本。您还可以选择要对其执行脚本的数据库,为方便起见隐藏系统数据库,并选择以串联或并行方式执行脚本。

但是,重要的是要注意,只有当数据库位于同一数据库服务器上时,才能在一个执行操作中对多个数据库执行脚本。如果数据库位于不同的服务器上,则需要通过在向导中切换连接来分几个步骤执行脚本。

结论

在本文中,我们演示了两种针对多个数据库执行SQL脚本的方法。第一种方法涉及在.bat文件中创建一个自定义脚本,该脚本允许针对多个数据库运行多个脚本。这种方法在指定要执行的脚本和数据库方面提供了灵活性,使其成为复杂场景的理想解决方案。第二种方法涉及使用dbForgeStudio接口,该接口允许对驻留在一台服务器上的多个数据库执行一个脚本。当处理位于同一服务器和单个脚本上的数据库时,此方法非常有用。

两种方法都有各自的优点和缺点,选择合适的方法取决于手头任务的具体要求。现在,您已经完全具备了针对多个数据库高效执行SQL脚本的能力,这可以潜在地为您节省大量管理和维护SQLServer数据库的时间和精力。


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82518
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63371
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14635

原文标题:Devart:如何通过跨多个数据库自动执行数据库脚本来节省时间和减少错误

文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通过Modbus读写数据库中的数据

    状态通过‘$RDSS()’方法写入到Modbus缓存(状态大于0时正常执行查询),上位机通过Modbus协议即可读取到数据库数据以及查询结
    发表于 03-14 13:44

    ASP.NET数据库编程

    最终取回一个DataSet。 2、数据流提供了高性能的、前向的数据存取机制。通过IdataReader,你可以轻松而高效地访问数据流。 3、更底层的对象允许你连接到
    发表于 01-08 09:00

    labvies访问数据库

    通过以下几种方法来完成与数据库的接口。1.利用NI 公司的附加工具包LabVIEW SQL Toolkit 进行数据库访问。但是这种工具包比较昂贵,对于很多LabVIEW 用户来讲,这个价格是不可能
    发表于 08-26 10:19

    labview 数据库操作问题

    不能很好的支持远程,是不是啊?那用DatabaseConnectivityToolkit怎么写命令给数据库数据库执行数据库里应经编写好的命令啊 ?
    发表于 07-23 17:06

    Access数据库

    最近学习数据库,自己给自己设了个题目,用状态机JKI实现如下功能:1.可添加数据至某表、显示部分(通过”完成“的值)及所有数据、删除数据
    发表于 04-26 16:28

    给大家分享一个数据库的例子和数据库方面的资料

    给大家分享一个数据库的例子和数据库方面的资料!!!
    发表于 12-21 14:03

    数据库智能管理助手-CloudDBA

    的一些问题,节省时间成本。比如说,用户反馈说应用卡住了,对DBA来说需要登录到数据库中,到控制台看动画,看看到底发生了什么?这些动作实际上是很重复,很机械的、如果有CloudDBA,它会有自己的一些小的脚本
    发表于 05-30 17:20

    labview通过LabSQL连接Access数据库错误

    labview通过LabSQL连接Access数据库的过程中,出现如下错误,请问是为什么?怎么解决?Exception occured in ADODB.Connection: 未找到提供程序。该
    发表于 06-23 16:23

    请问,labview执行数据库查找任务时候报错该如何解决?

    这是代码,原本写在事件结构里报错,我把代码放在条件结构还是报错。与数据库连接肯定是没问题的,我检查过。之前就这个问题搜索百度,已经把所有的数据库的列名改为中文了,还是报错。请各位大神帮帮忙错误提示如下
    发表于 04-18 10:06

    Linux环境下备份和恢复Oracle数据库

    on directory testdir to system; 2.6、执行数据库备份语句:nohup expdp \"/ as sysdba\" directory
    发表于 07-08 07:42

    labview多程序同时访问数据库闪退问题

    用labview访问数据库,连接,增删改查都没问题。但当我再两个循环中都对数据库进行操作时,程序要么卡着不动了,要么闪退。经排查是当两个循环中同时执行数据库操作功能时,会发生冲突,导致程序出现问题
    发表于 01-19 15:50

    labview多程序同时访问数据库程序卡死问题

    用labview访问数据库,连接,增删改查都没问题。但当我再两个循环中都对数据库进行操作时,程序要么卡着不动了,要么闪退。经排查是当两个循环中同时执行数据库操作功能时,会发生冲突,导致程序出现问题
    发表于 01-19 15:51

    USART使用DMA时可以节省时间吗?

    USART使用DMA时可以节省时间吗?
    发表于 12-02 07:21

    平台嵌入式数据库EffiProz介绍

    EffiProz:面向.NET程序员的平台嵌入式数据库 EffiProz:面向.NET程序员的平台嵌入式数据库EffiProz:面向.NET程序员的
    发表于 12-21 06:00

    通过节省时间和成本的创新技术降低电源中的EMI

    通过节省时间和成本的创新技术降低电源中的EMI。
    发表于 06-09 09:53 20次下载