是否有可能在输入参数为nvarchar(max)类型的SQL Server CLR项目中创建CLR存储过程?如何使用Nvarchar(max)参数创建CLR存储过程?
如果定义存储过程:
< Microsoft.SqlServer.Server.SqlProcedure()> _
公共共享 子MyProcedure(BYVAL参数1作为字符串)
然后,当你部署它,param1的类型是NVarchar(4000)。有没有办法让NVarchar(max)?
是否有可能在输入参数为nvarchar(max)类型的SQL Server CLR项目中创建CLR存储过程?如何使用Nvarchar(max)参数创建CLR存储过程?
如果定义存储过程:
< Microsoft.SqlServer.Server.SqlProcedure()> _
公共共享 子MyProcedure(BYVAL参数1作为字符串)
然后,当你部署它,param1的类型是NVarchar(4000)。有没有办法让NVarchar(max)?
将您的参数定义为SqlChars而不是字符串。请参阅Handling Large Object Parameters in the CLR
您可以使用SqlFacet
属性。如果你想在NVARCHAR(MAX)
类型作为参数,那么你应该这样做:
[SqlProcedure]
public static void storedProcedure1([SqlFacet(MaxSize=-1)] String param){ .. }
如果你需要它作为一个用户定义函数的返回值:
[return:SqlFacet(MaxSize=-1)]
[SqlFunction]
public static String userFunction1(){ ... }
的MAXSIZE = -1表示NVARCHAR的大小将是MAX。