如何使用 Nvarchar(max) 参数创建 CLR 存储过程? [英] How to create CLR stored procedure with Nvarchar(max) parameter?

查看:22
本文介绍了如何使用 Nvarchar(max) 参数创建 CLR 存储过程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在输入参数为 nvarchar(max) 类型的 SQL Server CLR 项目中创建 CLR 存储过程?

Is it possible to create CLR stored procedure in SQL Server CLR project having input parameterof type nvarchar(max)?

如果定义存储过程:

_
公共 共享Sub MyProcedure(ByVal param1 As String)

<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub MyProcedure(ByVal param1 As String)

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

Then when you deploy it, param1 is of type NVarchar(4000). Is there a way to have it NVarchar(max)?

推荐答案

您可以使用 SqlFacet 属性.如果你想要 NVARCHAR(MAX) 类型作为参数,那么你应该这样做:

You can use the SqlFacet attribute. If you want the NVARCHAR(MAX) type as a parameter, then you should do this:

[SqlProcedure]
public static void storedProcedure1([SqlFacet(MaxSize=-1)] String param){ .. }

如果您需要它作为用户定义函数中的返回值:

If you need it as a return value in a user defined function:

[return:SqlFacet(MaxSize=-1)]
[SqlFunction]
public static String userFunction1(){ ... }

MaxSize=-1 表示NVARCHAR 的大小为MAX.

这篇关于如何使用 Nvarchar(max) 参数创建 CLR 存储过程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆