CLR sproc,对象参数接受nvarchar(max)

时间:2011-03-07 12:15:13

标签: tsql sqlclr clrstoredprocedure

我有一个CLR存储过程,它从任意列获取值作为参数。要处理所有可能的列,请输入object / sql_variant类型的参数:

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

nvarchar(max)类型的列传入数据时,我得到:

  

“操作数类型冲突:nvarchar(max)是   与sql_variant“。

不兼容

如果参数是字符串,我可以将其声明为SqlChar或用[SqlFacet(MaxSize=-1)]进行装饰,以使其接受长度为>的列。 4000.对象是如何完成的?

1 个答案:

答案 0 :(得分:1)

我不相信你能实现你的目标。 sql_variant的上边界是8k bytes。 nvarchar(max) capped 位于2^31-1 bytes SQL Server正在检测您是否有可能尝试将德克萨斯州填入Dixie杯。由于8k sql_variant限制,不存在会说服SQL Server让你这样做的装饰器。