PRECISION LENGTH`有什么区别?
What is the difference between PRECISION LENGTH`?
我正在阅读 exec sp_columns
命令的输出,有 2 列我无法理解 PRECISION
和 LENGTH
我刚刚创建了以下 table
如果我没记错的话,quantity
列是数值型INTENGER
数据类型,即该列可以存储-2,147,483,648
到[=18=之间的数字]
这个信息正确吗?
但是如果我执行
exec sp_columns Books;
Precision
:我认为是列允许的字符数,即-2.1m和+2.1m之间最多10个字符
但我不明白为什么 LENGTH
列显示 4.
CREATE TABLE Books
(
title VARCHAR(10), -- Maximum length up to 10 characters example 'ABCDFGHIJK'
author VARCHAR(10),-- Maximum length up to 10 characters example 'ABCDFGHIJK'
quantity INTEGER -- ?
);
exec sp_columns Books;
INSERT INTO Prueba.dbo.Books
(title,author,quantity)
VALUES
('Example A', 'A', 1),
('Example B', 'B', 12),
('Example C', 'C', 123),
('Example D', 'D', 123467890),
('Example E', 'E', 1234678901);
什么LENGTH
代表它定义在documentation:
Column name
Data type
Dscription
LENGTH
int
Transfer size of the data.1
1 For more information, see the Microsoft ODBC documentation*.
*文档不包含 link 他们具体指的是 Microsoft ODBC 文档,所以遗漏不是我的
int
的大小为 4 个字节,因此该列在 sys.sp_columns
中定义了 4
的 LENGTH
。
我正在阅读 exec sp_columns
命令的输出,有 2 列我无法理解 PRECISION
和 LENGTH
我刚刚创建了以下 table
如果我没记错的话,quantity
列是数值型INTENGER
数据类型,即该列可以存储-2,147,483,648
到[=18=之间的数字]
这个信息正确吗?
但是如果我执行
exec sp_columns Books;
Precision
:我认为是列允许的字符数,即-2.1m和+2.1m之间最多10个字符
但我不明白为什么 LENGTH
列显示 4.
CREATE TABLE Books
(
title VARCHAR(10), -- Maximum length up to 10 characters example 'ABCDFGHIJK'
author VARCHAR(10),-- Maximum length up to 10 characters example 'ABCDFGHIJK'
quantity INTEGER -- ?
);
exec sp_columns Books;
INSERT INTO Prueba.dbo.Books
(title,author,quantity)
VALUES
('Example A', 'A', 1),
('Example B', 'B', 12),
('Example C', 'C', 123),
('Example D', 'D', 123467890),
('Example E', 'E', 1234678901);
什么LENGTH
代表它定义在documentation:
Column name Data type Dscription LENGTH int Transfer size of the data.1 1 For more information, see the Microsoft ODBC documentation*.
*文档不包含 link 他们具体指的是 Microsoft ODBC 文档,所以遗漏不是我的
int
的大小为 4 个字节,因此该列在 sys.sp_columns
中定义了 4
的 LENGTH
。