在表值参数中将nvarchar长度设置为最大值

时间:2014-04-07 12:52:31

标签: c# sql stored-procedures table-valued-parameters

我想将一个表值参数作为变量传递给存储过程,并且在类SqlMetadata的构造函数中,可以指定要在列中添加的字符串的长度(long maxLength)表

Microsoft.SqlServer.Server.SqlMetaData[] tvpdefinition = 
        {

            new SqlMetaData("ValueOne", SqlDbType.NVarChar, 100),
            new SqlMetaData("ValueTwo",SqlDbType.NVarChar, 100)
        }

怎样才能指定一个' max'长度,使其与此列对应

ValueOne (nvarchar(max), not null)

而不是长度值100,例如

1 个答案:

答案 0 :(得分:16)

In this article on MSDN指定您可以这样设置MAX大小

SqlParameter myParam = new SqlParameter("@paramName", SqlDbType.NVarChar, SqlMetaData.Max );

参见上述文章的最后一个例子 所以,在不确切知道你的SqlMetaData类是如何定义的情况下,假设最后一个参数是底层SqlParameter的大小属性,我想你可以编写

Microsoft.SqlServer.Server.SqlMetaData[] tvpdefinition = 
{
    new SqlMetaData("ValueOne", SqlDbType.NVarChar, SqlMetaData.Max ),
    ....
}