鏈接伺服器"(null)"的 OLE DB 訪問介面 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."

来源:https://www.cnblogs.com/kerrycode/archive/2019/06/20/11057216.html
-Advertisement-
Play Games

開發同事反饋一個SQL Server存儲過程執行的時候,報“鏈接伺服器"(null)"的 OLE DB 訪問介面 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."。這個存儲過程,個人做了一個精簡和脫敏處理後如下: ... ...


開發同事反饋一個SQL Server存儲過程執行的時候,報鏈接伺服器"(null)"的 OLE DB 訪問介面 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."。這個存儲過程,個人做了一個精簡和脫敏處理後如下:

 

BEGIN TRY
    BEGIN TRANSACTION    
                    
    INSERT INTO OPENDATASOURCE('SQLOLEDB', 'DATA SOURCE=XXX.XXX.XX.XXX;USER ID=XXX;PASSWORD=XXX).XXX.DBO.XXX 
    (........)
    SELECT ..... FROM .....
    COMMIT TRANSACTION
END TRY
BEGIN CATCH
      IF @@TRANCOUNT>0
        ROLLBACK
         .........
END CATCH

 

clip_image001

 

對於這種問題,是因為:對於大多數 OLE DB 訪問介面(包括 SQL Server),必須將隱式或顯示事務中的數據修改語句中的 XACT_ABORT 設置為 ON。 唯一不需要該選項的情況是在提供程式支持嵌套事務時。具體參考官方文檔:

 

XACT_ABORT must be set ON for data modification statements in an implicit or explicit transaction against most OLE DB providers, including SQL Server. The only case where this option is not required is if the provider supports nested transactions."

 

在存儲過程裡面的BEGIN TRANSACTION前設置SET XACT_ABORT ON;後問題即可解決。

 

 

 

參考資料:

 

https://docs.microsoft.com/zh-cn/sql/t-sql/statements/set-xact-abort-transact-sql?view=sql-server-2017


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 概述 1.1 基本概念 C++作為目前使用最廣泛的編程語言之一,支持類、封裝、重載等特性,是在C語言基礎上開發的一種面向對象的編程語言。 1.2 運作機制 STL(Standard Template Library)標準模板庫,是一些“容器”的集合,也是演算法和其他一些組件的集合。其目的是標準化組 ...
  • 1. 概述 1.1 基本概念 CPU(中央處理器, Central Processing Unit)占用率可以分為系統CPU占用率和任務CPU占用率兩種。 系統CPU占用率(CPU Percent)是指周期時間內系統的CPU占用率,用於表示系統一段時間內的閑忙程度,也表示CPU的負載情況。系統CPU ...
  • 回到目錄 鉗位器(clamper)可以將輸入波形整體上移或下移,“clamper”在 英語中的原意是“夾具”的意思,很形象地說明瞭它可以把波形任意鉗夾在某個電平處。如下圖所示: 圖 2-5.01 鉗位電路的核心器件是二極體和電容,下麵我們具體分析實現各種鉗位的電路圖。同樣的,為方便分析,我們假設下麵 ...
  • Mongodb 是基於集合建立索引 (Index),索引的作用類似於傳統關係型資料庫,目的是為了提高查詢速度 。 如果沒有建立索引, Mongodb 在讀取數據時必須掃描集合中的 所有文檔記錄。 這種全集合掃描效率是非常低的,尤其在處理大數據時,查詢可能需要花費幾十秒到幾分鐘的時間,這對基於互聯網應 ...
  • 今天在創建資料庫的時候,遇到了沒有創建資料庫許可權的問題,後來百度了一下解決了該問題。 1.先用windows身份驗證登錄,在安全性下麵的找到自己創建的登錄名,雙擊,在彈出的對話框中為它賦予許可權。 2.設置完後退出,然後登錄,這樣就可以創建資料庫了 ...
  • 大數據如此火熱的現在,想必許多小伙伴都想要加入這個行業。也是我們今天就要拿出收藏已久的大數據學習計劃。幫助你不走彎路,邁向大數據 1 大數據應用離不開基礎軟體的支撐,且大部分大數據組件部署在 Linux 操作系統上的用戶空間,也有很多組件也借鑒了Linux 操作系統的一些設計精髓,所以 Linux ...
  • MongoDB 是一款開源、跨平臺、分散式,具有大數據處理能力的文檔存儲資料庫。在 2007 年由 MongoDB 軟體公司開發完成,並實現全部代碼源發展。目 前,該文檔資料庫被國內外眾多知名網因所採納,用於提高數據訪問的處理速度 和大數據存儲問題。 基本操作命令 : show dbs : 顯示所有 ...
  • 找出employee表的所有外鍵約束 Result: 此時如果想刪除和posId相關的外鍵,只需要 找出以employee為REFERENCED_TABLE的所有約束 Result: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...