Ten artykuł zawiera krótkie odniesienie do typów danych dostarczanych przez system dostępnych w programie SQL Server 2017, a także kilka podstawowych informacji, takich jak maksymalna długość w bajtach, precyzja, skala i czy typ danych dopuszcza wartość null (1 oznacza, że nie ma wartości null,
0
oznacza, że nie można zerować).
Dokładne wartości liczbowe
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
duży | 8 | 19 | 0 | 1 |
bit | 1 | 1 | 0 | 1 |
dziesiętny | 17 | 38 | 38 | 1 |
int | 4 | 10 | 0 | 1 |
pieniądze | 8 | 19 | 4 | 1 |
liczbowe | 17 | 38 | 38 | 1 |
mały | 2 | 5 | 0 | 1 |
małe pieniądze | 4 | 10 | 4 | 1 |
tinyint | 1 | 3 | 0 | 1 |
Przybliżone wartości liczbowe
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
pływający | 8 | 53 | 0 | 1 |
prawdziwe | 4 | 24 | 0 | 1 |
Data i godzina
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
data | 3 | 10 | 0 | 1 |
data/godzina2 | 8 | 27 | 7 | 1 |
data i godzina | 8 | 23 | 3 | 1 |
przesunięcie daty i godziny | 10 | 34 | 7 | 1 |
smalldatetime | 4 | 16 | 0 | 1 |
czas | 5 | 16 | 7 | 1 |
Ciągi znaków
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
znak | 8000 | 0 | 0 | 1 |
tekst | 16 | 0 | 0 | 1 |
varchar | 8000 | 0 | 0 | 1 |
Ciągi znaków Unicode
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
nchar | 8000 | 0 | 0 | 1 |
ntext | 16 | 0 | 0 | 1 |
nvarchar | 8000 | 0 | 0 | 1 |
Ciągi binarne
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
binarny | 8000 | 0 | 0 | 1 |
obraz | 16 | 0 | 0 | 1 |
zmienna | 8000 | 0 | 0 | 1 |
Inne typy danych
Nazwa | Maksymalna długość | Precyzja | Skala | Nullable? |
---|---|---|---|---|
hierarchid | 892 | 0 | 0 | 1 |
sql_variant | 8016 | 0 | 0 | 1 |
geometria | -1 | 0 | 0 | 1 |
geografia | -1 | 0 | 0 | 1 |
sygnatura czasowa* | 8 | 0 | 0 | 0 |
unikalny identyfikator | 16 | 0 | 0 | 1 |
xml | -1 | 0 | 0 | 1 |
nazwa systemu | 256 | 0 | 0 | 0 |
* sygnatura czasowa typ danych jest synonimem rowversion typ danych. Więcej informacji znajdziesz poniżej.
Typy „kursor”, „table” i „rowversion”
Pobrałem informacje z powyższych tabel za pośrednictwem sys.types
widok katalogu systemowego. Oprócz powyższych typów, dokumentacja firmy Microsoft dotycząca typów danych zawiera również kursor i stół typy, a także rowversion zamiast sygnatury czasowej .
Typ „znacznika czasu”
Microsoft zaleca, aby sygnatura czasowa składnia jest przestarzała. Zaleca się, abyśmy teraz używali rowversion zamiast sygnatury czasowej tam, gdzie to możliwe, w naszych oświadczeniach DDL.
Jednak w międzyczasie możesz zauważyć, że kolumny nadal wydają się być zdefiniowane jako sygnatura czasowa nawet jeśli wyraźnie określisz rowversion podczas ich tworzenia (przy użyciu języka Transact-SQL). Niemniej jednak Microsoft radzi, że jest to właściwa składnia, której należy używać w przyszłości.
Pamiętaj też, że sygnatura czasowa w T-SQL/SQL Server różni się od sygnatury czasowej typ danych zdefiniowany w normie ISO.
Wygląda na to, że powodem, dla którego został wycofany, jest zamieszanie, jakie wywołała jego nazwa. Microsoft przyznał to w 2007 roku i poinformował, że spróbuje rozwiązać ten problem w sposób zgodny z poprzednimi wersjami w przyszłych wydaniach.
Sprawdź własną bazę danych
Możesz pobrać informacje o typach danych dla własnych baz danych za pomocą sys.types
widok systemu. Zobacz Jak zwrócić listę typów danych w SQL Server, aby uzyskać wyjaśnienie i przykłady. Uruchomienie tego widoku zwraca również wszelkie aliasy i typy zdefiniowane przez użytkownika, które znajdują się w bazie danych.