我遇到了這樣的問題。我有這個事務,$(FilePath)指定另一個腳本,它應該開始運行。內部回滾事務回滾外部
BEGIN TRANSACTION
:r $(FilePath)
GO
IF(@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
END
ELSE
BEGIN
COMMIT TRANSACTION
END
(請注意,由SQLCMD稱爲腳本大多不包含transacions) 的問題是,如果被調用的腳本中含有回滾事務,然後它也回滾外部事務。內部腳本不包含命名事務,並且有太多腳本來重寫每個要命名的事務。
有沒有辦法讓這個事務只回滾,如果相應的回滾事務運行?
謝謝
將您的交易命名爲@NickyvV寫道。 – Tomasito
這聽起來像是您無法控制您正在運行的腳本的內容 - 如果是這種情況,那麼您就無能爲力。 SQL Server不支持真正的嵌套事務。 –
是的,我不允許重寫腳本,但我必須在事務中運行它們。 – Gabor