通过


SQL Server 架构集合

除了通用架构集合之外,适用于 SQL Server 的 Microsoft .NET Framework 数据提供程序还支持其他架构集合。 架构集合因使用的 SQL Server 的版本而稍有不同。 若要确定支持的架构集合列表,请调用 GetSchema 不带参数的方法,或使用架构集合名称“MetaDataCollections”。 此时将返回 DataTable,包含支持的架构集合列表、每个架构集合支持的限制数以及所使用的标识符部分数。

数据库

ColumnName 数据类型 DESCRIPTION
数据库名称 字符串 数据库的名称。
dbid Int16 数据库 ID。
创建日期 日期时间 数据库的创建日期。

外键

ColumnName 数据类型 DESCRIPTION
CONSTRAINT_CATALOG 字符串 约束所属的编录。
CONSTRAINT_SCHEMA 字符串 包含约束的架构。
CONSTRAINT_NAME 字符串 姓名。
表目录 字符串 所属约束的表名。
TABLE_SCHEMA 字符串 包含表的架构。
TABLE_NAME 字符串 表名称
约束类型 字符串 约束的类型。 只允许“FOREIGN KEY”。
IS_DEFERRABLE 字符串 指定约束是否可以推迟。 返回否。
INITIALLY_DEFERRED 字符串 指定约束最初是否可以推迟。 返回 NO。

索引

ColumnName 数据类型 DESCRIPTION
约束目录 字符串 索引所属的目录。
约束模式(constraint_schema) 字符串 包含索引的架构。
约束名称 字符串 索引的名称。
table_catalog 字符串 索引关联的表名。
表结构 字符串 与索引关联的表所在的模式。
表名 字符串 表名。
索引名称 字符串 索引名称。

索引 (SQL Server 2008)

从 .NET Framework 版本 3.5 SP1 和 SQL Server 2008 开始,以下列已经添加到 Indexes 架构集合以支持新的空间类型、文件流和稀疏列。 .NET Framework 和 SQL Server 的早期版本中不支持这些列。

ColumnName 数据类型 DESCRIPTION
类型描述 字符串 索引类型可以为以下值之一:

- 堆
- 群集
- 非群集
-Xml
- 空间

索引列

ColumnName 数据类型 DESCRIPTION
constraint_catalog 字符串 索引所属的目录。
约束模式(constraint_schema) 字符串 包含索引的架构。
constraint_name 字符串 索引的名称。
table_catalog 字符串 与索引关联的表名。
table_schema 字符串 与索引相关联的表所在的模式。
表名 字符串 表名。
column_name 字符串 索引关联的列名。
序数位置 Int32 列顺序位置。
按键类型 字节(Byte) 对象的类型。
索引名称 字符串 索引名称。

过程

ColumnName 数据类型 DESCRIPTION
专用目录 字符串 目录的特定名称。
特定模式 字符串 特定的架构名称。
SPECIFIC_NAME 字符串 特定目录名称。
例程目录 字符串 存储过程所属的目录。
ROUTINE_SCHEMA 字符串 包含存储过程的架构。
例程名称 字符串 存储过程的名称。
例程类型 字符串 对于存储过程,返回 PROCEDURE,对于函数,返回 FUNCTION。
创建 日期时间 过程的创建时间。
上次修改 日期时间 上次修改过程的时间。

过程参数

ColumnName 数据类型 DESCRIPTION
特定目录 字符串 此参数所属的过程的编录名称。
SPECIFIC_SCHEMA 字符串 包含此参数所属的过程的架构。
SPECIFIC_NAME 字符串 此参数所属的过程的名称。
序号位置 Int32 参数的序号位置从 1 开始。 对于过程的返回值,此值为 0。
PARAMETER_MODE 字符串 如果是输入参数,则返回 IN;如果是输出参数,则返回 OUT;如果是输入/输出参数,则返回 INOUT。
是结果 字符串 如果该过程的结果是一个函数,则返回 YES。 否则,返回 NO。
AS_LOCATOR 字符串 如果声明为定位器,则返回 YES。 否则,返回 NO。
参数名称 字符串 参数的名称。 如果这对应于函数的返回值,则为 NULL。
数据类型 字符串 系统提供的数据类型。
字符最大长度 Int32 二进制或字符数据类型的最大长度(字符)。 否则,返回 NULL。
CHARACTER_OCTET_LENGTH Int32 二进制或字符数据类型的最大长度(字节)。 否则,返回 NULL。
COLLATION_CATALOG 字符串 参数的排序规则编目名称。 如果不是一种字符类型,则返回 NULL。
COLLATION_SCHEMA 字符串 始终返回 NULL。
COLLATION_NAME 字符串 参数排序规则的名称。 如果不是一种字符类型,则返回 NULL。
CHARACTER_SET_CATALOG 字符串 参数字符集的编录名称。 如果不是一种字符类型,则返回 NULL。
CHARACTER_SET_SCHEMA 字符串 始终返回 NULL。
字符集名称 字符串 参数字符集的名称。 如果不是一种字符类型,则返回 NULL。
数字精度 字节(Byte) 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。
数值精度基数 Int16 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。
NUMERIC_SCALE Int32 近似数值数据、精确数值数据、整数数据或货币数据的范围。 否则,返回 NULL。
DATETIME_PRECISION Int16 如果参数类型为 datetime 或 smalldatetime,则为小数秒数的精度。 否则,返回 NULL。
时间间隔类型 字符串 零。 保留供 SQL Server 以后使用。
间隔精度 Int16 零。 保留供 SQL Server 以后使用。

表格

ColumnName 数据类型 DESCRIPTION
TABLE_CATALOG 字符串 表的目录。
TABLE_SCHEMA (表格架构) 字符串 包含表的架构。
TABLE_NAME 字符串 表名。
TABLE_TYPE 字符串 表的类型。 可以是 VIEW 或 BASE TABLE。

ColumnName 数据类型 DESCRIPTION
表目录 字符串 表的目录。
TABLE_SCHEMA 字符串 包含表的架构。
TABLE_NAME 字符串 表名。
COLUMN_NAME 字符串 列名称。
序数位置 Int32 列标识号。
列默认值 字符串 列的默认值。
IS_NULLABLE(是否可为空) 字符串 列是否允许为空。 如果此列允许 NULL,此列将返回 YES。 否则,返回否定。
数据类型 字符串 系统提供的数据类型。
字符最大长度 Int32 – Sql8、Int16 – Sql7 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。
字符八位组长度 (CHARACTER_OCTET_LENGTH) Int32 – SQL8、Int16 – Sql7 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。
NUMERIC_PRECISION 无符号字节 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。
数值精度基数 Int16 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。
数字刻度 Int32 近似数值数据、精确数值数据、整数数据或货币数据的范围。 否则,返回 NULL。
DATETIME_PRECISION Int16 datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。
CHARACTER_SET_CATALOG 字符串 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。
CHARACTER_SET_SCHEMA 字符串 始终返回 NULL。
字符集名称 字符串 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。
COLLATION_CATALOG 字符串 如果列的数据类型是字符数据或文本数据类型,则返回 master,指示定义排序规则的数据库。 否则,此列为 NULL。

列 (SQL Server 2008)

从 .NET Framework 版本 3.5 SP1 和 SQL Server 2008 开始,以下列已经添加到 Colums 架构集合以支持新的空间类型、文件流和稀疏列。 .NET Framework 和 SQL Server 的早期版本中不支持这些列。

ColumnName 数据类型 DESCRIPTION
IS_FILESTREAM 字符串 如果列具有 FILESTREAM 属性,则显示 YES。

如果列不具有 FILESTREAM 属性,则为 NO。
IS_SPARSE 字符串 如果列是稀疏列,则为YES。

该列不是稀疏列时为“NO”。
IS_COLUMN_SET 字符串 如果该列是列集列,则为 YES。

如果该列不是集合列,则为 NO。

AllColumns (SQL Server 2008)

从 .NET Framework 版本 3.5 SP1 和 SQL Server 2008 开始,已添加 AllColumns 架构集合以支持稀疏列。 早期版本的 .NET Framework 和 SQL Server 不支持 AllColumns。

AllColumns 与 Columns 架构集合具有相同的限制,并产生相同的 DataTable 架构。 唯一的区别是 AllColumns 包含了一些不属于 Columns 架构集合的列集列。 下表介绍了这些列。

ColumnName 数据类型 DESCRIPTION
TABLE_CATALOG 字符串 表的目录。
TABLE_SCHEMA 字符串 包含表的架构。
TABLE_NAME 字符串 表名。
COLUMN_NAME 字符串 列名称。
序数位置 Int32 列标识号。
列默认值 字符串 列的默认值。
IS_NULLABLE(是否可为空) 字符串 列是否允许为空。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。
数据类型 字符串 系统提供的数据类型。
字符最大长度 Int32 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。
字符八位组长度 (CHARACTER_OCTET_LENGTH) Int32 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。
NUMERIC_PRECISION 无符号字节 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。
数值精度基数 Int16 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。
数字刻度 Int32 近似数值数据、精确数值数据、整数数据或货币数据的范围。 否则,返回 NULL。
DATETIME_PRECISION Int16 datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。
CHARACTER_SET_CATALOG 字符串 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。
CHARACTER_SET_SCHEMA 字符串 始终返回 NULL。
字符集名称 字符串 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。
COLLATION_CATALOG 字符串 如果列是字符数据或文本数据类型,则返回名为 master 的数据库,指示排序规则所在的数据库。 否则,此列为 NULL。
IS_FILESTREAM 字符串 如果该列具有 FILESTREAM 属性,则为是。

如果该列不具有 FILESTREAM 属性,则为 NO。
IS_SPARSE 字符串 如果该列是稀疏列, 则为 YES。

NO,如果该列不是稀疏列。
IS_COLUMN_SET 字符串 如果该列是列集的列,则为 YES。

该列如果不是列集列,则返回“否”。

ColumnSetColumns (SQL Server 2008)

从 .NET Framework 版本 3.5 SP1 和 SQL Server 2008 开始,添加了 ColumnSetColumns 架构集合以支持稀疏列。 .NET Framework 和 SQL Server 的早期版本不支持 ColumnSetColumns。 ColumnSetColumns 架构集合返回列集中所有列的架构。 下表介绍了这些列。

ColumnName 数据类型 DESCRIPTION
TABLE_CATALOG 字符串 表的目录。
TABLE_SCHEMA 字符串 包含表的架构。
TABLE_NAME 字符串 表名。
COLUMN_NAME 字符串 列名称。
序数位置 Int32 列标识号。
列默认值 字符串 列的默认值。
IS_NULLABLE(是否可为空) 字符串 列是否允许为空。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。
数据类型 字符串 系统提供的数据类型。
字符最大长度 Int32 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。
字符八位组长度 (CHARACTER_OCTET_LENGTH) Int32 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。
NUMERIC_PRECISION 无符号字节 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。
数值精度基数 Int16 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。
数字刻度 Int32 近似数值数据、精确数值数据、整数数据或货币数据的范围。 否则,返回 NULL。
DATETIME_PRECISION Int16 datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。
CHARACTER_SET_CATALOG 字符串 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。
CHARACTER_SET_SCHEMA 字符串 始终返回 NULL。
字符集名称 字符串 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。
COLLATION_CATALOG 字符串 如果列的数据类型是字符数据或文本数据类型,则返回 master,指示定义排序规则的数据库。 否则,此列为 NULL。
IS_FILESTREAM 字符串 如果列具有 FILESTREAM 属性,则显示 YES。

如果列不具有 FILESTREAM 属性,则为 NO。
IS_SPARSE 字符串 如果列是稀疏列,则为YES。

该列不是稀疏列时为“NO”。
IS_COLUMN_SET 字符串 如果该列是列集列,则为 YES。

如果该列不是集合列,则为 NO。

用户

ColumnName 数据类型 DESCRIPTION
用户ID Int16 用户 ID,在此数据库中是唯一的。 1 为数据库所有者。
user_name 字符串 在此数据库中唯一的用户名和组名。
createdate 日期时间 帐户的添加日期。
更新时间 日期时间 帐户的上次更改日期。

浏览量

ColumnName 数据类型 DESCRIPTION
TABLE_CATALOG 字符串 视图的目录。
TABLE_SCHEMA 字符串 包含视图的模式。
TABLE_NAME 字符串 查看名称。
CHECK_OPTION 字符串 WITH CHECK OPTION 的类型。 如果原始视图是使用 WITH CHECK OPTION 创建的,那么将为 CASCADE。 否则,返回“NONE”。
是否可更新 字符串 指定视图是否可更新。 始终返回 NO。

ViewColumns

ColumnName 数据类型 DESCRIPTION
查看目录 字符串 视图的目录。
视图架构 (VIEW_SCHEMA) 字符串 包含视图的架构。
视图名称 字符串 查看名称。
TABLE_CATALOG 字符串 与此视图关联的表的目录。
TABLE_SCHEMA 字符串 包含与此视图关联的表的架构。
TABLE_NAME 字符串 与此视图关联的表的名称。 基表。
COLUMN_NAME 字符串 列名称。

用户定义类型

ColumnName 数据类型 DESCRIPTION
assembly_name 字符串 程序集文件的名称。
udt_name 字符串 程序集的类名。
version_major 物体 主版本号。
version_minor 物体 次版本号。
version_build 物体 内部版本号。
版本修订 物体 修订号。
文化信息 物体 与此 UDT 关联的文化信息。
公钥 物体 此程序集使用的公钥。
is_fixed_length 布尔 判断某类型的长度是否总是与 max_length 相等。
最大长度 Int16 类型的最大长度(字节数)。
创建日期 日期时间 创建/注册程序集的日期。
权限集描述 字符串 程序集的权限集合或安全级别的友好名称。

另请参阅