gpt4 book ai didi

sql-server-2008 - 从Powershell中的文件运行SQL脚本有什么限制?

转载 作者:行者123 更新时间:2023-12-02 23:15:04 26 4
gpt4 key购买 nike

我有一个相当复杂的SQL脚本,可以执行以下操作:

  • 删除现有数据库
  • 从备份
  • 重新加载数据库
  • 设置权限
  • 其他一些其他特定于数据库的任务

  • 我将其保存为.sql文件,以提高移动性和易用性,但我希望将其合并到Powershell脚本中,以使其运行起来更加简单(并封装一些其他需要完成的任务相同的过程)。这是我在Powershell中为脚本提供的一些代码:
    add-pssnapin sqlservercmdletsnapin100
    invoke-sqlcmd -inputfile "D:\Scripts\loaddatabase31_Loadtest.sql" -serverinstance "PerfSQL02" -hostname "PerfSQL02"

    假设serverinstance,inputfile和hostname存在并且正确放置。

    我正在还原的数据库为数百GB,因此实际的删除和还原过程大约需要20分钟。现在,当我尝试运行该脚本时,出现以下错误(该脚本是从同一网络内但在不同域中的工作站运行的):
    invoke-sqlcmd : Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
    At line:2 char:1

    我尝试在invoke-sqlcmd上使用-connectiontimeout开关,但这似乎无法解决此问题(因此连接时可能不会超时)。我看到的通过Powershell运行SQL的大多数示例都没有使用文件,而是在脚本中定义了SQL。由于运行SQL的复杂性,我不希望这样做(并且由于它是在删除和还原数据库,因此除非使用系统DB之一,否则我无法将所有这些真正包装在SP中) 。

    任何人都有什么想法可能导致超时? invoke-sqlcmd是否不能与文件正常协作?

    最佳答案

    您不需要-connectiontimeout,可能需要-Qu​​eryTimeout

    http://technet.microsoft.com/en-us/library/cc281720.aspx

    关于sql-server-2008 - 从Powershell中的文件运行SQL脚本有什么限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419828/

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