簡體   English   中英

SQL Server存儲過程INSERT NVARCHAR(MAX)未保存

[英]SQL Server Stored Procedure INSERT NVARCHAR(MAX) not saving

我有一個相當簡單的SQL Server存儲過程,帶有2個輸入參數,名稱為nvarchar(100) ,結果為nvarchar(max)

存儲過程只是執行插入操作,僅此而已。

INSERT INTO TableX (name, results) 
VALUES (@Name, @Results)

結果是| 分隔的文件序列化為字符串。 有時,當運行該存儲過程時,表中的行僅具有名稱,結果為空白。 沒有SQL錯誤。 這不僅是因為結果的長度,是因為某些有效的調用要比某些最終變為空的調用要長。 我確實發現某些條目包含單引號,因此我刪除了單引號,但沒有幫助。

有任何想法嗎?

這是存儲過程:

CREATE PROCEDURE [dbo].[tempdata_SaveMarketStatsToCache]
    (@ScreenName NVARCHAR(100),
     @Results NVARCHAR(MAX))
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO TempData_MarketStatsCache (MarketStatsKey, Results)
    VALUES (@ScreenName, @Results)
END

從.NET調用存儲過程。 長度為-1的SQLDbType.NVarchar

更新:我懷疑這是傳遞的字符串的大小。 失敗的最小字符串不到25萬個字符。 對於NVARCHAR(max)可以,但是在INSERT期間似乎發生了一些事情。

更新2:原來這是SQL Server Managment Studio的問題。 我右鍵單擊表格並選擇編輯200行。 這表明結果較大的行(超過200K個字符)的列為空。 如果我只是運行查詢,則會顯示列值。

原來這是一個SQL Server Management Studio問題,使得好像沒有插入數據。 請參閱問題中的更新2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM