2010-11-18 136 views
4

是否有可能在输入参数为nvarchar(max)类型的SQL Server CLR项目中创建CLR存储过程?如何使用Nvarchar(max)参数创建CLR存储过程?

如果定义存储过程:

< Microsoft.SqlServer.Server.SqlProcedure()> _
公共共享 子MyProcedure(BYVAL参数1作为字符串)

然后,当你部署它,param1的类型是NVarchar(4000)。有没有办法让NVarchar(max)?

回答

3

您可以使用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。