2010-11-18 133 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。