Как создать хранимую процедуру CLR с параметром Nvarchar (max)? - PullRequest
4 голосов
/ 18 ноября 2010

Можно ли создать хранимую процедуру CLR в проекте CLR SQL Server с входным параметром типа nvarchar (max)?

Если вы задаете хранимую процедуру:

_
Public Shared Sub MyProcedure (ByVal param1 As String)

Затем при его развертывании param1 имеет тип NVarchar (4000).Есть ли способ получить его NVarchar (max)?

Ответы [ 2 ]

5 голосов
/ 18 ноября 2010

Определите ваш параметр типа SqlChars вместо строки. См. Обработка параметров больших объектов в CLR

4 голосов
/ 05 января 2012

Вы можете использовать атрибут 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 будет максимальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...