Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server数据库中将文本用作主键时要使用哪种变量类型_Sql_Sql Server_Key - Fatal编程技术网

在SQL Server数据库中将文本用作主键时要使用哪种变量类型

在SQL Server数据库中将文本用作主键时要使用哪种变量类型,sql,sql-server,key,Sql,Sql Server,Key,我知道在表中使用文本作为主键的利弊 (有) 然而,我只是想知道我是否必须使用varchar(10)或char(10)或其他 值看起来像1-115151(长度可能不同)严格地说,您可以使用其中任何一个,但与此处的其他值一致-您将希望对可变长度项目使用varchar 当您的数据库扩展并从其他表开始外部键控时,您很有可能会因为没有固定的字符类型而节省了空间而感到高兴 如果你的钥匙长度超过了你的预期,你也会非常高兴 不要将文本数据类型用作主键,只能使用整数。这对于简化编程和SQL连接非常重要。对于这个

我知道在表中使用文本作为主键的利弊
(有)

然而,我只是想知道我是否必须使用
varchar(10)
char(10)
或其他


值看起来像1-115151(长度可能不同)

严格地说,您可以使用其中任何一个,但与此处的其他值一致-您将希望对可变长度项目使用varchar

  • 当您的数据库扩展并从其他表开始外部键控时,您很有可能会因为没有固定的字符类型而节省了空间而感到高兴
  • 如果你的钥匙长度超过了你的预期,你也会非常高兴

不要将文本数据类型用作主键,只能使用整数。这对于简化编程和SQL连接非常重要。

对于这个字符串,我建议使用varchar(11)

如果字符串长度可以增长,我建议将其设置为12甚至15


Varchar使用的空间等于使用的字符数+2。可以放在varchar(11)或varchar(15)中的数据将在这两个文件中使用相同数量的空间

变量lenght-varchar。我只会对短字符串使用
char(n)
(这些值代表什么?这些值来自另一个数据库(我的客户),实际上是那里的主键。对于这一点,我不担心是唯一的,等等。情况并非总是如此,OP特别声明他们知道这一点。