Bob*_*obs 8 sql-server stored-procedures nvarchar
我已经定义了一个具有类型参数的存储过程,NVARCHAR(max)
我在我的文件中处理该字符串stored procedure
.我知道最大值nvarchar
是4000.但是我已经将一个包含5700个字符的字符串传递给了我的sp而没有错误.可能吗?
mar*_*c_s 10
是的,有可能 - 根据MSDN文档:
nvarchar [(n | max)]
可变长度的Unicode字符串数据.n定义字符串长度,可以是1到4,000之间的值.max表示最大存储大小为2 ^ 31-1个字节(2 GB).存储大小(以字节为单位)是输入数据的实际长度的两倍+ 2个字节.nvarchar的ISO同义词是国家字符变化和国家字符变化.
因此,如果您指定,nvarchar(max)
您可以存储多达10亿个 2字节的Unicode字符.这是Leo Tolstoj的战争与和平超过一百倍......
SQL Server 在内部将这些最大列存储到特殊结构中,这使得可以绕过SQL Server页面的8K限制.它的工作原理 - 但它比在页面上存储几百个字节更省力,因此这个存储系统确实对SQL Server造成了更大的压力 - 小心使用它,只在你真正需要的时候使用它(并且绝对不需要)只是把你所有的专栏都搞定了(n)varchar(max)
,只因为你很懒!)
看看关于Simple Talk的这篇非常好的文章:使用VARCHAR(n)的重点是什么?- 它非常好地解释了(max)
数据类型如何不同而不太适合较小的字符串 - 仅在真正需要时才使用!
归档时间: |
|
查看次数: |
10840 次 |
最近记录: |