【发布时间】:2023-03-12 01:17:01
【问题描述】:
我有一个 Table_A,其列名称和数据类型如下:
QUANTITY int
PO_NO varchar(13)
FLG char(1)
AMOUNT money
我想进行这样的查询,返回结果如下:
QUANTITY TYPE="3" LENGHT="4"
PO_NO TYPE="200" LENGHT="13"
FLG TYPE="129" LENGHT="1"
AMOUNT TYPE="6" LENGTH="8"
我使用此查询获取列架构,但结果与我的预期不一样
select COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='Table_A'
结果:
COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
QUANTITY int NULL
PO_NO varchar 13
FLG char 1
AMOUNT money NULL
所以,我的问题是:如何知道数据类型 int 等价于 Type=3 和 length =4 等等。
【问题讨论】:
-
SQL Server 2008。请查看我的帖子:stackoverflow.com/questions/49586370/…
-
所需结果中的长度不是表架构,而是 SQL Server 用于存储数据的物理字节。 ISO SQL
INFORMATION_SCHEMA视图返回逻辑模式,而不是物理实现。您可以使用sys.columns之类的目录视图以及将SQL 类型映射到ADO 类型代码来获得所需的结果。为什么要关心数据类型的物理长度(以字节为单位)?
标签: sql sql-server sql-server-2008 schema