`

从 String or binary data would be truncated 异常深入到数据库设计

阅读更多

    "所有的进步都是不稳定的,一个问题解决了,我们不得不面对又一个新问题。"

                                                                  ------马丁*路德*金

 

   "String or binary data would be truncated" 属于SQLException,产生原因是需要插入的字段长度大于数据库表中对应的字段长度,数据库放不下该数据。解决方法就是把数据库中的字段长度扩大。问题就出来了:要扩大到多少才适合呢?   

 

     最近的项目用的是sqlserver数据库,sqlserver数据库存在char,varchar和nvarchar三种字符串类型,小小试了一下。结果发现:一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。char是定长类型,一般用来存储状态字段char(1)。比如char(25),不管你存储的数据是否达到了25个字节,都会占去25个字节空间,不足的字节空间会使用空格补足。varchar是char的可变类型, VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。nvarchar表示存储的是unicode数据类型的字符,最大长度是4000个字符。我们知道字符中,一般一个字符等于两个字节,一个英文字母是占一个字节,一个汉字占两个字节。unicode的产生就是为了解决字符集不兼容问题,它规定所有字符都等于两个字节。即汉字和一个英文字母一样,都只占一个字符,两个字节。通俗点说,nvarchar类型最大可以存4000个汉字或者4000个英文字母。而char和varchar最多能存储4000个汉字或者8000个英文字母。比如说产品名称最大只能输入25个汉字,那么后台数据库表就可以设计成nvarchar(25)就搞定了。

分享到:
评论

相关推荐

    通过Data文件夹备份和还原实现Mysql数据库的备份以及还原

    本文将详细讲解如何通过Data文件夹备份和还原实现MySQL数据库的备份及恢复,这是一种简单直接的方法,尤其适合小型数据库或者开发测试环境。 首先,我们需要理解MySQL的数据存储结构。MySQL数据库的数据文件主要...

    BinaryData.dat

    BinaryData.dat

    折半查找 binarySearch

    A binary search algorithm (or binary chop) is a technique for finding a particular value in a sorted list. It makes progressively better guesses, and closes in on the sought value, by comparing an ...

    java保存文件到数据库

    这个过程涉及到将文件转换为二进制数据,然后将这些数据存储到数据库的特定字段中,通常是一个BLOB(Binary Large Object)类型。在给定的场景中,我们看到一个名为"SavePic.java"的文件,这可能是实现这一功能的...

    change string to binary.zip_Change_labview格式转换

    字符串到二进制的转换涉及到两种数据类型的转换:从字符串(String)到二进制数组(Array of Bytes)。 6. **使用和调试VI**: - 使用VI时,确保输入符合VI的要求,例如字符串格式和长度。 - 调试时,可以利用...

    向数据库上传二进制文件 Delphi

    此外,为了从数据库检索二进制文件,你可以使用类似的流程,只是将`Post`操作替换为`Open`或`Next`,然后将`BinaryData`字段的数据写入一个新的文件。 **注意事项** - 大型二进制文件可能超出内存限制,这时可以...

    C#将文件保存到数据库中或者从数据库中读取文件

    C#将文件保存到数据库中或者从数据库中读取文件 本文主要介绍了使用 C# 将文件保存到数据库中或者从数据库中读取文件的方法。下面将详细介绍该知识点。 一、保存文件到数据库中 在实际开发中,我们经常需要将文件...

    String to Binary-开源

    总的来说,"String to Binary"项目结合了前端和后端技术,为用户提供了一个方便的在线工具,实现了字符串到二进制的实时转换。这不仅展示了PHP处理字符串的能力,还演示了Ajax如何增强Web应用程序的交互性。对于学习...

    文件与STRING互转

    本文将深入探讨如何实现文件到字符串以及字符串到文件的转换,并阐述它们在数据库中的应用。 一、文件转STRING 1. 文件读取:首先,我们需要读取文件的内容。在Python中,可以使用`open()`函数以二进制模式('rb'...

    java-leetcode题解之Construct String from Binary Tree.java

    java java_leetcode题解之Construct String from Binary Tree.java

    数据库课程设计 超市管理系统

    数据库课程设计是IT教育中的一个重要环节,它通常涉及到实际项目开发,旨在让学生将理论知识应用于实践中。本项目是一个超市会员管理系统,这样的系统在现实生活中广泛应用于各种零售业,用于跟踪和管理顾客信息、...

    将图片保存到数据库sql中

    当涉及到将图片等二进制数据保存到数据库时,我们通常会利用BLOB(Binary Large Object)类型的字段来存储。本篇文章将详细解释如何将图片保存到SQL数据库,并提供一个简单的源代码示例。 首先,我们需要了解BLOB...

    数据库设计及配置.pdf

    数据库设计及配置 数据库设计是数据库系统的核心组件之一,它决定了数据库的结构和组织方式。好的数据库设计可以提高数据库的性能、可靠性和可维护性。本章节将详细介绍数据库设计的基本概念、原则和步骤,并以 MS ...

    初学者需要掌握的数据库设计词汇对照表.txt(数据库的一些专用词汇都在这,我在网上总结了好久才出来

    以上词汇涵盖了数据库设计与管理中的核心概念,深入理解这些术语对于成为合格的数据库设计师和管理员至关重要。数据库技术不断发展,新的术语和概念不断涌现,因此持续学习和实践是提升技能的关键。

    用Jsp上传图片到数据库

    本话题将深入探讨如何利用JSP实现图片的上传功能,并将其存储到数据库中。 首先,我们需要了解JSP上传图片的基本流程。用户通过浏览器提交包含图片的表单,这个表单通常包含一个`<input type="file">`元素,用于...

    C#将word文件存入数据库与读取

    public void StoreBinaryInDatabase(byte[] binaryData, string connectionString, int fileId) { string sql = "INSERT INTO Files (FileId, Content) VALUES (@FileId, @Content)"; using (SqlConnection ...

    二进制图片上传到数据库

    先从数据库中查询出二进制数据,然后将这些数据写入到新的文件中,恢复成图片格式。在Python中,可以这样实现: ```python def binary_to_image(binary_data, output_path): with open(output_path, 'wb') as out_...

    C# 文件保存到数据库中或者从数据库中读取文件

    ### C# 文件保存到数据库或从数据库中读取文件 在C#开发中,经常会遇到需要将文件存储到数据库中的情况,或者从数据库中读取文件进行处理的需求。本文将详细介绍如何利用C#来实现这一功能,并且会涵盖不同的数据库...

    Zemax使用Binary-2面型设计案例,How-to-use-Binary-2.zip

    通过打开并研究这些文件,我们可以深入理解Binary-2面型在实际设计中的应用步骤和效果。 在Zemax中,使用Binary-2面型通常包括以下步骤: 1. 创建光学系统:定义光源、光学元件和探测器等。 2. 设定Binary-2面:...

Global site tag (gtag.js) - Google Analytics