是否有可能在輸入參數爲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。