[英]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.