2009-12-14 4 views
1

Что мне знать о включении базовых типов данных в SQL Server?Базовые типы данных в SQL Server?

В моей базе данных я нужен

  1. Флаги/бит, я полагаю, я должен использовать байт
  2. 64bit/IDS Интс
  3. переменная длина строки. Это может быть 5 букв, это может быть 10 000 (для desc, но я планирую разрешить неограниченные имена пользователей)

Есть ли тип ТЕКСТА в SQL Server? Я не хочу использовать varchar (limit), если я не могу использовать что-то смехотворно высокое, как 128k. Как указать 1 байта - 8 байтов ints?

+0

, пожалуйста, используйте "SQL-сервер" или "SQL-сервера-2005" или любые теги вместо "MSSQL" - спасибо. –

+0

его трудно, если потребуется время, прежде чем я смогу подтвердить, работает ли ответ или нет. – 2009-12-15 23:05:56

ответ

4

Для 1), использовать BIT - это один бит, например, восемь из этих полей будут вставляться в один байт.

Для 2) используйте BIGINT - 64-разрядное знаковое Int

Для 3), безусловно, сделать НЕ использовать TEXT/NTEXT - те устаревшим SQL Server 2005 и выше.

Используйте VARCHAR(MAX) или NVARCHAR(MAX) вместо текстовой информации объемом до 2 ГБ.

Вот список типов данных SQL Server 2008:

http://msdn.microsoft.com/en-us/library/ms187594.aspx

3
  • Флаги/бит, я полагаю, я должен использовать байт

Использование "бит", который является точно, что : один бит

  • 64bit ids/ints

BIGINT является 64-битное

  • переменная длина строки. Это может быть 5 букв, это может быть 10 000 (для desc, но я планирую разрешить неограниченные имена пользователей)

varchar (max) до 2 ГБ. В противном случае VARCHAR (8000) является обычным пределом

Microsoft даже положить в nice handy web page for you

+0

+1 Вы определенно нашли более приятную обзорную страницу, чем я! :-) –

+0

Должен ли я беспокоиться об эффективности и бит? если у меня есть 12 бит или 16 бит, они оба получат одно и то же пространство? (при условии, что он не проиндексирован), просто другая логика вставки? – 2009-12-14 19:09:44

+0

Просто дайте движку позаботиться об этом: он упаковывает их сам по себе в байты, поэтому 12 и 16 будут принимать 2 байта. Это то, что двигатель предназначен для этого. – gbn

1

Другие уже дали хорошие ответы на ваш вопрос. Если вы делаете какую-либо разработку .NET и должны сопоставлять типы данных SQL с типами данных CLR, следующая ссылка будет полезна.

http://msdn.microsoft.com/en-us/library/bb386947.aspx

Рэнди

Смежные вопросы