Как в действительности используются некоторые необычные типы данных SQL Server? - PullRequest
0 голосов
/ 02 января 2012

Для чего используются следующие типы данных SQL Server?

Приведите несколько реальных примеров.

  1. binary(50), varbinary(50) и varbinary(max) вместоизображение
  2. smallint и tinyint вместо int и bit
  3. varchar(50) и varchar(max) вместо text
  4. sql_variant
  5. uniqueidentifier

Ответы [ 2 ]

6 голосов
/ 02 января 2012
  1. изображение устарело и также очень ограничено (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
3 голосов
/ 02 января 2012

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 символов, использовать его не имеет смысла) text или varchar(max) в любом случае).

5)

уникальный идентификатор

Для хранения GUID

...