gpt4 book ai didi

Powershell Invoke-sqlcmd 保持连接打开并尝试重用它

转载 作者:行者123 更新时间:2023-12-02 12:44:32 25 4
gpt4 key购买 nike

我有一个 Powershell 脚本,它使用 invoke-sqlcmd 将脚本应用到一系列开发数据库。我循环遍历脚本列表,并将其与数据库的当前版本级别进行比较,然后应用所需的脚本以使数据库达到所需的版本级别。某些数据库是引用数据库并且处于 READ_ONLY 状态。我连接到这些数据库,运行一个更改数据库脚本,将它们设置为 READ_WRITE 应用该脚本,然后将其更改回 READ_ONLY。总体而言,该脚本运行良好,问题是当 PowerShell 首次打开与数据库的连接并应用第一个脚本,然后将数据库更改回 READ_ONLY 时,数据库已锁定对象。我已将其追溯到先前的连接和 Shared_Transaction_Workspace 锁 (sys.dm_tran_locks),该锁看起来像是先前的 powershell 连接。为什么在 invoke-sqlcmd 完成后此连接仍然打开,我能对此做些什么吗?我可以强制 invoke-sqlcmd 在每次调用 cmdlet 时使用新连接吗?

我尝试了一种困惑的修复方法来终止有问题的连接,然后重试连接,但我认为还有更好的方法。

最佳答案

我一直这样做,而且似乎很有效:

[System.Data.SqlClient.SqlConnection]::ClearAllPools()

关于Powershell Invoke-sqlcmd 保持连接打开并尝试重用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954678/

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