gpt4 book ai didi

sql-server-2005 - 在 T-SQL 脚本中使用或不使用 "GO"会影响结果吗?

转载 作者:行者123 更新时间:2023-12-04 07:14:15 25 4
gpt4 key购买 nike

我们有一个 SSIS 包,它在具有 2005 兼容性设置的 SQL 2008 机器上运行。该包包含一个 SQL 任务,看起来好像脚本末尾的 SQL 没有运行。

在离开公司之前,负责该程序包的人员指出,该程序包需要在各个 SQL 命令之间进行“GO”才能更正问题。但是,当在 SQL Server 2008 与 2008 兼容的开发中进行测试时,该包运行良好。

据我所知,GO 's place 命令是成批的,这里的命令是成批发送给数据库提供者的,为了效率。我想只有这样GO应该影响结果的是,如果该脚本在其上方某处出现错误。我可以想象GO在那种情况下,并且只有在那种情况下,才会影响结果。但是,我们没有看到任何记录错误的证据。

有人可以建议我是否GO甚至可能与问题有关?假设没有遇到错误,我对“GO”命令的理解表明它的使用或不使用很可能与问题无关。

最佳答案

GO正如您所说,关键字是 SQL Server 管理工具使用的批处理分隔符。不过,重要的是要注意,关键字本身是由客户端解析的,而不是服务器。

根据所讨论的 SQL Server 版本,有些事情确实需要放入不同的批次中,例如创建和使用数据库。还有一些操作必须在批处理开始时进行(如 use 语句),因此使用这些关键字意味着您必须将脚本分成批处理。

将脚本分成多个批次时要记住以下几点:

  • 当批处理中遇到错误时,该批处理的执行将停止。但是,如果您的脚本有多个批次,则一个批次中的错误只会阻止该批次执行;后续批次仍会执行
  • 一个批次中声明的变量仅对该批次可用;它们不能用于其他批次

  • 如果脚本只执行 CRUD 操作,则无需将其分解为多个批次,除非需要上述任何行为差异。

    关于sql-server-2005 - 在 T-SQL 脚本中使用或不使用 "GO"会影响结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941738/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com