この記事には、SQL Server 2017で使用可能なシステム提供のデータ型のクイックリファレンスと、バイト単位の最大長、精度、スケール、データ型がnull許容かどうか( 1 <)などの基本情報が含まれています。 / code> null許容、 0を意味します null許容ではないことを意味します。
正確な数値
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| bigint | 8 | 19 | 0 | 1 |
| ビット | 1 | 1 | 0 | 1 |
| 10進数 | 17 | 38 | 38 | 1 |
| int | 4 | 10 | 0 | 1 |
| お金 | 8 | 19 | 4 | 1 |
| 数値 | 17 | 38 | 38 | 1 |
| smallint | 2 | 5 | 0 | 1 |
| smallmoney | 4 | 10 | 4 | 1 |
| tinyint | 1 | 3 | 0 | 1 |
おおよその数値
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| フロート | 8 | 53 | 0 | 1 |
| 本物 | 4 | 24 | 0 | 1 |
日時
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| 日付 | 3 | 10 | 0 | 1 |
| datetime2 | 8 | 27 | 7 | 1 |
| datetime | 8 | 23 | 3 | 1 |
| datetimeoffset | 10 | 34 | 7 | 1 |
| smalldatetime | 4 | 16 | 0 | 1 |
| 時間 | 5 | 16 | 7 | 1 |
文字列
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| char | 8000 | 0 | 0 | 1 |
| テキスト | 16 | 0 | 0 | 1 |
| varchar | 8000 | 0 | 0 | 1 |
Unicode文字列
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| nchar | 8000 | 0 | 0 | 1 |
| ntext | 16 | 0 | 0 | 1 |
| nvarchar | 8000 | 0 | 0 | 1 |
バイナリ文字列
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| バイナリ | 8000 | 0 | 0 | 1 |
| 画像 | 16 | 0 | 0 | 1 |
| varbinary | 8000 | 0 | 0 | 1 |
その他のデータ型
| 最大長 | 精度 | スケール | Nullable? | |
|---|---|---|---|---|
| hierarchyid | 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 |
| sysname | 256 | 0 | 0 | 0 |
*タイムスタンプ データ型は行バージョンの同義語です データ・タイプ。詳細については、以下を参照してください。
「カーソル」、「テーブル」、「行バージョン」のタイプ
sys.typesを介して上記の表の情報を取得しました システムカタログビュー。上記のタイプに加えて、データタイプに関するMicrosoftのドキュメントには、カーソルもリストされています。 およびテーブル タイプ、および行バージョン タイムスタンプの代わりに 。
「タイムスタンプ」タイプ
Microsoftは、タイムスタンプ 構文は非推奨です。 行バージョンを使用することをお勧めします タイムスタンプの代わりに 可能な限り、DDLステートメントで。
ただし、それまでの間、列がタイムスタンプとして定義されているように見える場合があります。 rowversionを明示的に指定した場合でも それらを作成するとき(Transact-SQLを使用)。それでも、Microsoftは、これが今後使用する正しい構文であることをお勧めします。
タイムスタンプにも注意してください T-SQL /SQLServerのタイムスタンプとは異なります ISO規格で定義されているデータ型。
それが非推奨になった理由は、その名前が引き起こした混乱によるものと思われます。 Microsoftは2007年にこれを認め、将来のリリースでは下位互換性のある方法で対処しようとするとアドバイスしました。
自分のデータベースを確認する
sys.types を使用して、独自のデータベースのデータ型情報を取得できます。 システムビュー。説明と例については、SQLServerでデータ型のリストを返す方法を参照してください。このビューを実行すると、データベースにあるエイリアスとユーザー定義のタイプも返されます。