Tsql CLR存储过程,对象参数接受nvarchar(最大值)

Tsql CLR存储过程,对象参数接受nvarchar(最大值),tsql,sqlclr,clrstoredprocedure,Tsql,Sqlclr,Clrstoredprocedure,我有一个CLR存储过程,它将任意列中的值作为参数。要处理所有可能的列,请使用类型为的参数: 从类型为nvarchar(max)的列传入数据时,我得到: “操作数类型冲突:nvarchar(最大值)为 与sql_变体不兼容” 如果参数是一个字符串,我可以将其声明为SqlChar或使用[SqlFacet(MaxSize=-1)]对其进行修饰,使其接受长度大于4000的列。对象是如何实现的?我不相信你能实现你正在尝试的目标。sql_变量的上边界为。SQL Server检测到您可能正试图将德克萨斯州塞进

我有一个CLR存储过程,它将任意列中的值作为参数。要处理所有可能的列,请使用类型为的参数:

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

“操作数类型冲突:nvarchar(最大值)为 与sql_变体不兼容”


如果参数是一个字符串,我可以将其声明为
SqlChar
或使用
[SqlFacet(MaxSize=-1)]
对其进行修饰,使其接受长度大于4000的列。对象是如何实现的?

我不相信你能实现你正在尝试的目标。sql_变量的上边界为。SQL Server检测到您可能正试图将德克萨斯州塞进迪克西杯。由于8k sql_变体的限制,不存在能够说服sql Server允许您这样做的装饰程序

我不相信你能实现你正在尝试的目标。sql_变量的上边界为。SQL Server检测到您可能正试图将德克萨斯州塞进迪克西杯。由于8k sql_变体的限制,不存在能够说服sql Server允许您这样做的装饰程序

好的,谢谢。这是有道理的。在这种情况下,我做了一个变通方法,现在知道下次我必须首先尝试其他方法。好的,谢谢。这是有道理的。在这种情况下,我做了一个变通方法,现在我知道下次我必须首先尝试其他方法。
[SqlFunction]  
public static bool IsTrue(object storedValue...