一些不寻常的SQL Server数据类型的实际使用是什么?

时间:2012-01-02 15:01:45

标签: sql-server sqldatatypes

以下SQL Server数据类型有哪些?

给我一​​些真实的例子。

  1. binary(50)varbinary(50)varbinary(max)代替图片
  2. smallinttinyint代替intbit
  3. varchar(50)varchar(max)代替text
  4. sql_variant
  5. uniqueidentifier

2 个答案:

答案 0 :(得分:6)

  1. image is deprecated and also very limited(MSDN)
  2. 你无法与其他人比较。 tinyint / smallint:https://dba.stackexchange.com/a/4979/630
  3. 文本已弃用且非常有限(如第1点)
  4. 一栏中的多语言支持:https://dba.stackexchange.com/a/10009/630
  5. 合并复制:https://stackoverflow.com/a/1164694/27535

答案 1 :(得分:3)

1)

  

varbinarymax而不是图像

不推荐使用

image,因此您需要使用varbinary(max)来确保与未来SQL Server版本的兼容性

2)

  

smallint和tinyint而不是int和bit

这些是存储具有不同范围的数值的四种不同类型。这取决于您要在该列中保存的数据:

  • 如果您只需要0和1,请使用bit
  • 如果您的需要不超过0到255,请使用tinyint
  • 如果您不需要超过-32768到32768,请使用smallint
  • 如果您需要更多内容,请使用int

当然,您可以将int用于所有内容,但“更大”类型每行还需要更多空间。因此,如果您只需要0和1值,那么使用int列绝对没有意义,因为它只会不必要地增加您的数据库。

3)

  

varchar(50)和varcharmax而不是文本

与1相同):text已弃用,因此您需要使用varchar(50)varchar(max)来确保以后的兼容性(如果您的文字总是符合50个字符,则不会无论如何都要使用textvarchar(max)

5)

  

uniqueidentifier

存储GUIDs