【发布时间】:2021-10-21 04:27:27
【问题描述】:
通过SYS.all_columns查看SQL Server中的列定义时,发现image数据类型的max_length设置为16,谁能帮忙解释一下这是什么意思?
【问题讨论】:
-
"ntext、text 和 image 数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。" - docs.microsoft.com/en-us/sql/t-sql/data-types/…
-
它是指向 LOB 值的指针的大小。但谁在乎?就像米奇说的,你应该在 20 年前就停止使用这种类型。请阅读:sqlperformance.com/2021/07/sql-performance/…
-
许多考虑
image数据类型的人是SQL Server 的新手,可能希望将图片存储在数据库中。首先...不要那样做(将图片的引用存储在数据库中,但将图片内容在线存储或存储在文件系统中)。但是,如果您绝对必须将它们存储在数据库中,请改用varbinary(max)数据类型。 -
谢谢大家。是的,绝对应该避免在新项目中使用图像。我正在查看一个几年前构建的系统,并跨过这 16 个 max_length 来获取图像数据类型。 @AaronBertrand,感谢您指出 16 个字节的指针长度。
标签: sql-server metadata