在参数声明中,varchar(MAX)的大小是多少?

mrb*_*lah 179 c# ado.net sql-server-2008

我通常在ADO.NET中创建参数时设置列大小

但是如果列是什么尺寸我会使用VARCHAR(MAX)

cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 273

在这种情况下,您使用-1.

  • 另请参阅MSDN文档:http://msdn.microsoft.com/en-us/library/bb399384.aspx (6认同)
  • 将所有参数长度设置为-1是否有任何性能缺陷,所以我不必维护数据库匹配列表? (5认同)

小智 50

对于我们这些没有被Michal Chaniewski看到-1的人来说,完整的代码行:

cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";
Run Code Online (Sandbox Code Playgroud)


Eri*_*ven 6

SqlDbType.VarChar 的最大大小为 2147483647。

如果您使用通用的oledb 连接而不是 sql,我发现这里还有一个 LongVarChar 数据类型。其最大大小为 2147483647。

cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string";
Run Code Online (Sandbox Code Playgroud)