SQL Server数据类型:将8位无符号数存储为INT或CHAR(8)?

Tim*_*ter 1 sql-server database-design types sql-server-2005

我认为标题说明了一切.是否更好(更快,节省空间,根据内存和磁盘)将8位无符号数存储为Int或char(8)类型?当我使用固定的字符长度时,将来这个数字会变为9位数时会遇到麻烦吗?

背景信息:我想存储TAC小号

谢谢

Dam*_*ver 5

鉴于TAC可以具有前导零,它们实际上是不透明的标识符,并且从不使用,使用char列.

在确定已正确建模数据类型之前,请勿开始优化空间.

编辑

但为了避免在那里得到垃圾,请确保您也应用CHECK约束.例如,如果它是8位数,请添加

CONSTRAINT CK_Only8Digits CHECK (not TAC like '%[^0-9]%' and LEN(RTRIM(TAC)) = 8)
Run Code Online (Sandbox Code Playgroud)