sql-server - 为什么将文本转换为 varchar 而不指定长度会在 30 个字符处截断文本?

标签 sql-server text casting varchar

我正在搜索 MS-SQL Server 2005 数据库以确保某个文本字段的长度始终是 8 的倍数。当我运行以下查询时,我得到几行的长度为 30。但是当我调查这些记录时,我发现它们比这更长。

select distinct len(cast(textfield as varchar)) from tablename

但是,如果我将 varchar 的长度指定为更长的长度(如以下查询中所示),它就可以正常工作。
select distinct len(cast(textfield as varchar(1000))) from tablename

有谁知道为什么它默认为 30 以及这是否是可配置的设置?

最佳答案

关于sql-server - 为什么将文本转换为 varchar 而不指定长度会在 30 个字符处截断文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777394/

相关文章:

javascript - 是否可以在 TypeScript 中组合用户定义的类型保护?

mysql - 在不同数据库但同一个表中执行相同sql的简单方法

c# - 每天将大量 XML 数据(> 1Gb)导入 SQL Server 2008

python - 在 python 3.1 中编辑单个 .txt 行

具有数组输入 : Error:|Cannot cast float to float*| without any cast 的自定义函数

r - 在 R : dcast in function, 中传递列名(再次!)

sql-server - 在从 Azure 门户创建期间命名 Azure SQL Server

sql - 如何优化繁忙表的索引?

python - 如何在windows上安装antiword并在python中使用

bash - 用 shell 脚本处理文本文件(超过 10K 行)真的很慢吗?