Тази статия съдържа бърза справка за предоставените от системата типове данни, налични в SQL Server 2017, заедно с основна информация, като максимална дължина в байтове, прецизност, мащаб и дали типът данни е нулев или не (1код> означава, че е нула,
0
означава, че не може да се нула).
Точни числа
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
голям | 8 | 19 | 0 | 1 |
бит | 1 | 1 | 0 | 1 |
десетичен знак | 17 | 38 | 38 | 1 |
int | 4 | 10 | 0 | 1 |
пари | 8 | 19 | 4 | 1 |
числово | 17 | 38 | 38 | 1 |
smallint | 2 | 5 | 0 | 1 |
малки пари | 4 | 10 | 4 | 1 |
tinyint | 1 | 3 | 0 | 1 |
Приблизителни числа
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
float | 8 | 53 | 0 | 1 |
истински | 4 | 24 | 0 | 1 |
Дата и час
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
дата | 3 | 10 | 0 | 1 |
дата и час2 | 8 | 27 | 7 | 1 |
дата и час | 8 | 23 | 3 | 1 |
datetimeoffset | 10 | 34 | 7 | 1 |
smalldatetime | 4 | 16 | 0 | 1 |
време | 5 | 16 | 7 | 1 |
Символни низове
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
char | 8000 | 0 | 0 | 1 |
текст | 16 | 0 | 0 | 1 |
varchar | 8000 | 0 | 0 | 1 |
Низове от символи в Unicode
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
nchar | 8000 | 0 | 0 | 1 |
ntext | 16 | 0 | 0 | 1 |
nvarchar | 8000 | 0 | 0 | 1 |
Двоични низове
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
двоичен | 8000 | 0 | 0 | 1 |
изображение | 16 | 0 | 0 | 1 |
варбинарен | 8000 | 0 | 0 | 1 |
Други типове данни
Име | Максимална дължина | Прецизност | Мащаб | Нуля? |
---|---|---|---|---|
йерархия | 892 | 0 | 0 | 1 |
sql_variant | 8016 | 0 | 0 | 1 |
геометрия | -1 | 0 | 0 | 1 |
география | -1 | 0 | 0 | 1 |
марка за време* | 8 | 0 | 0 | 0 |
уникален идентификатор | 16 | 0 | 0 | 1 |
xml | -1 | 0 | 0 | 1 |
име на системата | 256 | 0 | 0 | 0 |
* марката за време типът данни е синоним на версия на ред тип данни. Вижте по-долу за повече информация.
Типове „курсор“, „таблица“ и „версия на редове“
Изтеглих информацията в горните таблици чрез sys.types
изглед на системния каталог. В допълнение към горните типове, документацията на Microsoft за типовете данни също изброява курсора имасата типове, както и rowversion вместо клеймо за време .
Типът ‘timestamp’
Microsoft съветва, че timestamp синтаксисът е отхвърлен. Препоръчително е сега да използваме версия на ред вместо клеймо за време където е възможно в нашите DDL изявления.
Междувременно обаче може да откриете, че колоните все още изглеждат дефинирани като клеймо за време дори когато изрично посочите версия на ред при създаването им (с помощта на Transact-SQL). Въпреки това Microsoft съветва, че това е правилният синтаксис, който да се използва занапред.
Също така имайте предвид, че timestamp в T-SQL/SQL Server е различно от timestamp тип данни, дефиниран в стандарта ISO.
Изглежда, че причината за оттеглянето му се дължи на объркването, причинено от името му. Microsoft потвърди това през 2007 г. и посъветва, че ще се опитат да се справят с това по обратно съвместим начин в бъдещи издания.
Проверете собствената си база данни
Можете да извлечете информация за тип данни за вашите собствени бази данни, като използвате sys.types
системен изглед. Вижте Как да върнете списък с типове данни в SQL Server за обяснение и примери. Изпълнението на този изглед също връща всички псевдоними и дефинирани от потребителя типове, които са в базата данни.