int、bigint、smallint 和 tinyint

使用整数数据的精确数字数据类型。

数据类型 范围 存储
tinyint 0 到 255。 1 字节
smallint
-2^15 (-32,768) 到 2^15-1 (32,767)。
2 字节
int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)。 4 字节
bigint -2^63 (-9,223,372,036,854,775,808) 到 2^63-1。 (9,223,372,036,854,775,807) 8 字节

 

 

 

 

 

 

 

decimal [ (p[ ,s] )] 和 numeric[ (p[ ,s] )]

ecimal 和 numeric 是同义词,可互换使用。

decimal。

p(精度)

默认精度为 18。

s (小数位数)

最大存储大小基于精度而变化。

精度(p)

存储字节数

1 - 9

5

10-19

9

20-28

13

29-38

17

 

 

 

 

 

 

 

 

money 和 smallmoney

money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。

数据类型

范围

存储

money

-922,337,203,685,477.5808 到 922,337,203,685,477.5807。

8 字节

smallmoney

-214,748.3648 到 214,748.3647。

4 字节

 

 

 

 

 

bit

可以取值为 1、0 或 NULL 的 integer 数据类型。

bit,则这些列作为 2 个字节存储,以此类推。

bit 值:TRUE 将转换为 1,FALSE 将转换为 0。

转换为 bit 会将任何非零值升为 1。

float 和 real

real 的 ISO 同义词为 float(24)。

n 的默认值为 53。

n值

精度

存储大小

1-24

7 位数

4 字节

25-53

15 位数

8 字节

 

 

 

 

 

数据类型

范围

存储

float

-1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308

n 的值

real

-3.40E + 38 至 -1.18E - 38、0 以及 1.18E - 38 至 3.40E + 38

4 字节

 

 

 

 

 

日期时间 

类型 默认的字符串文字格式 日期范围 时间范围 时区偏移量范围 各元素的范围 字符长度 存储大小 精确度 默认值 日历 用户定义的秒的小数部分精度 时区偏移量感知和保留 夏时制感知
date YYYY-MM-DD 0001-01-01 到 9999-12-31(对于 Informatica,为 1582-10-15 到 9999-12-31)

公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日(对于 Informatica,为公元 1582 年 10 月 15 日到公元 9999 年 12 月 31 日)
    DD 是表示指定月份中的某一天的两位数字,范围为从 01 到 31(最高值取决于具体月份)。 10 位 固定 3 个字节 一天 此值用于从 time 隐式转换到 datetime2 或 datetimeoffset 时追加的日期部分。 公历
datetime 默认的字符串文字格式不适用 1753 年 1 月 1 日到 9999 年 12 月 31 日 00:00:00 到 23:59:59.997 None n* 为一个 0 到 3 位的数字,范围为 0 到 999,表示秒的小数部分。
最低 19 位到最高 23 位
8 字节 舍入到 .000、.003 或 .007 秒三个增量。 1900-01-01 00:00:00 公历(不包括完整的年份范围。)
datetime2 [ (fractional seconds precision) ] YYYY-MM-DD hh:mm:ss[.fractional seconds] 公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日 00:00:00 到 23:59:59.9999999 None 在 Informatica 中,当 n > 3 时,秒的小数部分会被截断。 最低 19 位 (YYYY-MM-DD hh:mm:ss ),最高 27 位 (YYYY-MM-DD hh:mm:ss.0000000) 所有其他精度则需要 8 个字节。 100 纳秒 1900-01-01 00:00:00 公历 用户帐户控制
datetimeoffset [ (fractional seconds precision) ] YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm] 公元 1 年 1 月 1 日到公元 9999 年 12 月 31 日 00:00:00 至 23:59:59.9999999(Informatica 不支持秒的小数部分) -14:00 到 +14:00(Informatica 中忽略时区偏移量) Informatica 忽略时区偏移量。 最低 26 位 (YYYY-MM-DD hh:mm:ss {+ 默认值为 10 个字节的固定大小,默认的秒的小数部分精度为 100ns。 100 纳秒

1900-01-01 00:00:00 00:00

公历 用户帐户控制 用户帐户控制
smalldatetime 不适用 1900 年 1 月 1 日到 2079 年 6 月 6 日 2007-05-10 00:00:00   YYYY 是表示年份的四位数字,范围为 1900 到 2079。

小于或等于 29.998 秒的值向下舍入为最接近的分钟数;大于或等于 29.999 秒的值向上舍入为最接近的分钟数。
最高 19 位 固定 4 个字节
一分钟
1900-01-01 00:00:00 (不包括完整的年份范围。)
time [ (fractional second scale) ] 对于 Informatica,为 hh:mm:ss[.nnnnnnn])   00:00:00.0000000 到 23:59:59.9999999(对于 Informatica,为 00:00:00.000 到 23:59:59.999)   对于 Informatica,n* 是零到三位数字,范围为 0 到 999。 对于 Informatica,最大值为 12 位 (hh:mm:ss.nnn)。 在 Informatica 中,默认为 4 个字节,固定不变,同时秒的小数部分精度默认为 1 毫秒。 100 纳秒(Informatica 中为 1 毫秒) 此值用作从 date 隐式转换到datetime2 或 datetimeoffset 时追加的时间部分。   用户帐户控制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cursor 

有些操作可以引用那些具有 cursor 数据类型的变量和参数,这些操作包括:

  • DECLARE @local_variable 和 SET @local_variable 语句。
  • OPEN、FETCH、CLOSE 及 DEALLOCATE 游标语句。
  • 存储过程输出参数。
  • CURSOR_STATUS 函数。
  • sp_cursor_list、sp_describe_cursor、sp_describe_cursor_tables 以及 sp_describe_cursor_columns 系统存储过程。

对于 CREATE TABLE 语句中的列,不能使用 cursor 数据类型。

rowversion

若要记录日期或时间,请使用 datetime2 数据类型。

(例如,如果某列的值为 5,且更新语句将该值设置为 5,即使没有发生任何更改,此操作也被视为更新,并且 rowversion 发生递增。)

在 DDL 语句中,应尽量使用 rowversion,而不是 timestamp。

binary 和 varbinary

数据类型 定义 取值范围 储存大小 ISO 何时使用...
binary [ ( n ) ]  长度为 n 字节的固定长度二进制数据。 n 是从 1 到 8,000 的值。 存储大小为 n 字节。   列数据项的大小一致。
varbinary [ ( n | max) ]  可变长度二进制数据。

n 的取值范围为 1 至 8,000。

max 指示最大存储大小是 2^31-1 个字节。

存储大小为所输入数据的实际长度 + 2 个字节。

所输入数据的长度可以是 0 字节。

 

[n]列数据项的大小差异相当大。

[max]列数据条目超出 8,000 字节。

char [ ( n ) ] 固定长度,非 Unicode 字符串数据。 n 用于定义字符串长度,并且它必须为 1 到 8,000 之间的值。 存储大小为 n 字节。 char 的 ISO 同义词是 character  
varchar [ ( n | max ) ] 可变长度,非 Unicode 字符串数据。 max 指示最大存储大小是 2^31-1 个字节 (2 GB)。 存储大小为所输入数据的实际长度 + 2 个字节。 varchar 的 ISO 同义词是 charvarying 或 charactervarying  
nchar [ ( n ) ] 固定长度的 Unicode 字符串数据。 n 用于定义字符串长度,并且它必须为 1 到 4,000 之间的值。

存储大小为 n 字节的两倍。

根据字符串的不同,n 个字节的存储大小可能小于为 n 指定的值。

 nchar 的 ISO 同义词是 national char 和 national character  
nvarchar [ ( n | max ) ] 可变长度的 Unicode 字符串数据。 max 指示最大存储大小是 2^30-1 个字符。 实际存储大小(以字节为单位)是所输入字符个数的两倍 + 2 个字节。 nvarchar 的 ISO 同义词是 national char varying 和 national character varying。  
ntext 长度可变的 Unicode 数据,字符串最大长度为 2^30 - 1 (1,073,741,823) 个字节。    存储大小是所输入字符串长度的两倍(以字节为单位)。  ntext 的 ISO 同义词为 national text。  
text 服务器代码页中长度可变的非 Unicode 数据,字符串最大长度为 2^31-1 (2,147,483,647) 个字节。   根据字符串,存储大小可能小于 2,147,483,647 字节。    
image 长度可变的二进制数据。   从 0 到 2^31-1 (2,147,483,647) 个字节。    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

空间类型 - geography

SQL Server geography 数据类型存储诸如 GPS 纬度和经度坐标之类的椭球体(圆形地球)数据。

Microsoft 扩展所定义的 geography 方法。

extents 表示 geography 对象的各点之间的近似最大距离。

可以用在持久化和非持久化计算列中。

 

sql_variant

借助 sql_variant,这些数据库对象可以支持其他数据类型的值。

例如,定义为 sql_variant 的列可以存储 int、binary 和 char 类型的值。

实际基类型值的最大长度是 8,000 个字节。

对于 sql_variant 数据类型,必须先将它转换为其基本数据类型值,然后才能参与诸如加减这类运算。

此外,sql_variant 不能使用其他 sql_variant 作为其基础类型。

该最大长度是 900 个字节。

一个表可以包含任意多个 sql_variant 列。

不能在 CONTAINSTABLE 和 FREETEXTTABLE 中使用 sql_variant。

例如,包含字符串数据 'PS2091' 的 sql_variant 列将作为 0x505332303931 返回。

table 变量可用于函数、存储过程和批处理中。

uniqueidentifier

存储空间为16 字节 GUID。

uniqueidentifier数据类型的列或局部变量可通过以下方式初始化为一个值:

  • 通过使用 NEWID 或 NEWSEQUENTIALID 函数。
  • 例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 为有效的 uniqueidentifier 值。

除 IDENTITY 之外的所有列约束和属性均可对 uniqueidentifier 数据类型使用。

具有更新订阅的合并复制和事务复制使用 uniqueidentifier 列来确保在表的多个副本中唯一地标识行。

XML

可在列中或者 xml 类型的变量中存储 xml 实例。

存储的 xml 数据类型表示实例大小不能超过 2 GB。

CONTENT 和 DOCUMENT 方面仅应用于类型化的 XML.

这是默认行为。

不允许在顶层使用文本节点。

若要创建类型化的 xml 列或变量,可选择指定 XML 架构集合名称。

 

相关文章:

  • 2021-11-27
  • 2021-07-24
  • 2022-12-23
  • 2021-11-12
猜你喜欢
  • 2021-11-02
  • 2022-12-23
  • 2022-02-11
  • 2022-01-13
  • 2022-12-23
相关资源
相似解决方案