Bar*_*ğlu 3 sql sql-server sql-server-2008
select c.name, t.name, c.length
from syscolumns c
Run Code Online (Sandbox Code Playgroud)
对于任何具有最大例如varchar(max)的列,c.length给出-1
我该怎么办才能获得长度?
sys.columns上的数据类型长度为smallint,而varchar(max)的最大长度为21亿,因此在保持实际长度时存在问题.-1表示varchar(max),varbinary(max),nvarchar(max)和xml的文档.
http://msdn.microsoft.com/en-us/library/ms176106(v=sql.100).aspx
如果你真的需要这个数字,那么你需要一个case语句用-1替换为(2 ^ 31)-1
如果您想获得物理数据的长度,那么您需要根据您需要的信息,在表上使用相应的长度来最大/最小/平均.查询字段长度时,DATALENGTH返回使用的字节LEN数,返回字符数.
-1表示该列是类型max.根据max文档,最大长度是类型.如果未指定FILESTREAM属性,则MAX类型的最大长度为2GB,或者最大大小仅受可用磁盘大小的限制:
BLOB的大小仅受文件系统的卷大小限制.2 GB文件大小的标准varbinary(max)限制不适用于存储在文件系统中的BLOB.
因此,你的问题真的没有答案.您可以使用,询问表值中实际大小的实际大小DATALENGTH.
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |