当在SQL中将一个超过VARCHAR限制的值存储到VARCHAR中时会发生什么?

9
如果我设置一个varchar(255)列,如果我尝试插入超过255个字符,会出现错误还是将插入的值连接到前255个字符?

有趣的是,一些帖子被关闭了,我有完全相似的问题,并偶然发现了这个问题,但令我惊讶的是它已经关闭了。幸运的是,还有一些答案,但是是什么导致这个问题不符合指南呢?我在想。 - Vivek Shukla
1个回答

11

这取决于服务器配置:

如果未启用严格的SQL模式,并且您为CHAR或VARCHAR列分配的值超过了列的最大长度,则该值将被截断以适合列,并生成警告。对于非空格字符的截断,您可以使用严格的SQL模式,导致出现错误(而不是警告),并禁止插入该值。

更多信息请参见此处:CHAR和VARCHAR类型


3
[需要引证来源](https://zh.wikipedia.org/wiki/Template:Citation_needed)。请提供您引用内容的来源。 - Jonathan Lonowski
+1 . . . @Urill,引用文档时附上实际文档链接会更有帮助。 - Gordon Linoff
@JonathanLonowski 已经注意到了,谢谢。 - Uriil
@Uriil,你知道在SQL Server中这个的等价物吗? - Vivek Shukla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接