Sql server要使用nvarchar或bigint

Ash*_*pta 0 sql sql-server

这可能是一个愚蠢的问题.我需要在表中有一个Id字段.此Id不是密钥(主要或其他).要求说用户可以从UI输入此字段中的10位数字.到目前为止,此Id与系统中的任何其他对象无关.你认为如果可以在这个领域使用nvarchar或bigint.bigint是否会成为此目的的开销?

Dam*_*ver 6

如果您将使用此列执行任何数学工作,那么显然优选整数类型.或者,如果这是一个纯粹的,不透明的标识符,那么char或varchar列似乎更有意义.如果前导零可能很重要,那么显然整数类型将不起作用,例如,如果存储英国电话号码01234 567890,您需要在char列中.

编辑和奖励积分,如果它是一个始终为十位数的ID:

CREATE TABLE T (
    /* Other columns */
    Id char(10),
    constraint CK_ID_Valid CHECK (LEN(ID)=10 and not ID like '%[^0-9]%')
)
Run Code Online (Sandbox Code Playgroud)