2011-03-07 62 views
1

我有一個CLR存儲過程,它將一個任意列的值作爲參數。要處理所有可能的列參數,如果object/sql_variant類型:CLR sproc,接受對象參數nvarchar(max)

[SqlFunction] 
public static bool IsTrue(object storedValue... 

當數據傳遞從nvarchar(max)類型的專欄中,我得到:

「操作數類型衝突:爲nvarchar(max)是 不兼容與sql_variant「。

如果參數一直是字符串我可以宣佈其爲SqlChar[SqlFacet(MaxSize=-1)]裝飾它,使之接受長度> 4000列它是如何爲對象做了什麼?

回答

1

我不相信你可以實現你正在嘗試的東西。 sql_variant的上邊界是8k bytes。 nvarchar(最大)是上限2^31-1 bytes SQL Server正在檢測你是否可能試圖將德州的狀態填入Dixie杯中。由於8k sql_variant的限制,不存在會說服SQL Server讓你這樣做的裝飾器。

+0

好的,謝謝。這就說得通了。我在這種情況下做了一個解決方法,現在知道下一次我必須首先嚐試其他方法。 – Grastveit 2011-03-16 22:07:44

相關問題