适用于: .NET Framework
.NET
.NET Standard
除了通用架构集合,Microsoft SqlClient Data Provider for SQL Server 还支持其他架构集合。 架构集合因使用的 SQL Server 的版本而稍有不同。 要确定支持的架构集合列表,请以无参数的形式或使用架构集合名称“MetaDataCollections”调用 GetSchema 方法。 此时将返回 DataTable,包含支持的架构集合列表、每个架构集合支持的限制数以及所使用的标识符部分数。
数据库
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| database_name | 字符串 | 数据库的名称。 |
| dbid | Int16 | 数据库 ID。 |
| 创建日期 | 日期时间 | 数据库的创建日期。 |
外键
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| CONSTRAINT_CATALOG | 字符串 | 约束所属的编录。 |
| CONSTRAINT_SCHEMA | 字符串 | 包含约束的架构。 |
| CONSTRAINT_NAME | 字符串 | 名称: |
| TABLE_CATALOG | 字符串 | 该约束所属的表名。 |
| TABLE_SCHEMA | 字符串 | 包含该表的架构模式。 |
| TABLE_NAME | 字符串 | 表名称 |
| CONSTRAINT_TYPE | 字符串 | 约束的类型。 只允许“FOREIGN KEY”。 |
| IS_DEFERRABLE | 字符串 | 指定约束是否可以推迟。 返回值为 NO。 |
| INITIALLY_DEFERRED | 字符串 | 指定约束最初是否可以推迟。 返回值为 NO。 |
索引
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| constraint_catalog | 字符串 | 该索引所属的目录 |
| constraint_schema | 字符串 | 包含索引的架构。 |
| constraint_name | 字符串 | 索引的名称。 |
| table_catalog | 字符串 | 与该索引关联的表名。 |
| 表架构 | 字符串 | 包含与该索引关联的表的模式。 |
| table_name | 字符串 | 表名。 |
| index_name | 字符串 | 索引名称。 |
| type_desc | 字符串 | 索引类型可以为以下值之一: - 堆 - 集群式 - 非群集 -Xml - 空间 |
IndexColumns
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| 约束目录 | 字符串 | 该索引所属的目录。 |
| constraint_schema | 字符串 | 包含索引的架构。 |
| constraint_name | 字符串 | 索引的名称。 |
| table_catalog | 字符串 | 与该索引关联的表名。 |
| 表架构 | 字符串 | 包含与该索引关联的表的模式。 |
| table_name | 字符串 | 表名。 |
| column_name | 字符串 | 与该索引关联的列名。 |
| 序号位置 | Int32 | 列序号位置。 |
| 密钥类型 | 字节 | 对象的类型。 |
| index_name | 字符串 | 索引名称。 |
过程
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| SPECIFIC_CATALOG | 字符串 | 目录的具体名称。 |
| SPECIFIC_SCHEMA | 字符串 | 特定的架构名称。 |
| SPECIFIC_NAME | 字符串 | 目录的具体名称。 |
| ROUTINE_CATALOG | 字符串 | 存储过程所属的目录。 |
| ROUTINE_SCHEMA | 字符串 | 包含存储过程的架构。 |
| ROUTINE_NAME | 字符串 | 存储过程的名称。 |
| ROUTINE_TYPE | 字符串 | 返回 PROCEDURE 存储过程和 FUNCTION 函数。 |
| 已创建 | 日期时间 | 过程的创建时间。 |
| 最后修改时间 | 日期时间 | 上次修改过程的时间。 |
过程参数
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| SPECIFIC_CATALOG | 字符串 | 此参数所属的过程的编录名称。 |
| SPECIFIC_SCHEMA | 字符串 | 包含此参数所属的过程的架构。 |
| SPECIFIC_NAME | 字符串 | 此参数所属的过程的名称。 |
| ORDINAL_POSITION | Int32 | 参数的序号位置从 1 开始。 对于过程的返回值,其值为 0。 |
| PARAMETER_MODE | 字符串 | 如果是输入参数,则返回 IN;如果是输出参数,则返回 OUT;如果是输入/输出参数,则返回 INOUT。 |
| IS_RESULT | 字符串 | 如果表示某个过程的结果,且该过程是函数,则返回 YES。 否则,返回 NO。 |
| AS_LOCATOR | 字符串 | 如果声明为定位器,则返回 YES。 否则,返回 NO。 |
| PARAMETER_NAME | 字符串 | 参数的名称。 如果这对应于函数的返回值,则为 NULL。 |
| DATA_TYPE | 字符串 | 系统提供的数据类型。 |
| 字符最大长度 | Int32 | 二进制或字符数据类型的最大长度(字符)。 否则,返回 NULL。 |
| 字符八位组长度 | Int32 | 二进制或字符数据类型的最大长度(字节)。 否则,返回 NULL。 |
| COLLATION_CATALOG | 字符串 | 参数排序规则的编录名称。 如果不是一种字符类型,则返回 NULL。 |
| COLLATION_SCHEMA | 字符串 | 始终返回 NULL。 |
| COLLATION_NAME | 字符串 | 参数排序规则的名称。 如果不是一种字符类型,则返回 NULL。 |
| CHARACTER_SET_CATALOG | 字符串 | 参数字符集的编录名称。 如果不是一种字符类型,则返回 NULL。 |
| CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
| CHARACTER_SET_NAME | 字符串 | 参数的字符集名称。 如果不是一种字符类型,则返回 NULL。 |
| NUMERIC_PRECISION | 字节 | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
| NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
| NUMERIC_SCALE | Int32 | 近似数值数据、精确数值数据、整数数据或货币数据的标度。 否则,返回 NULL。 |
| 日期时间精度 | Int16 | 如果参数类型为 datetime 或 smalldatetime,则为小数秒数的精度。 否则,返回 NULL。 |
| INTERVAL_TYPE | 字符串 | NULL。 保留供 SQL Server 以后使用。 |
| INTERVAL_PRECISION | Int16 | NULL。 保留供 SQL Server 以后使用。 |
表
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| TABLE_CATALOG | 字符串 | 表目录 |
| TABLE_SCHEMA | 字符串 | 包含该表的架构模式。 |
| TABLE_NAME | 字符串 | 表名。 |
| TABLE_TYPE | 字符串 | 表的类型。 可以是 VIEW 或 BASE TABLE。 |
列
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| TABLE_CATALOG | 字符串 | 表目录 |
| TABLE_SCHEMA | 字符串 | 包含该表的架构模式。 |
| TABLE_NAME | 字符串 | 表名。 |
| COLUMN_NAME | 字符串 | 列名称。 |
| ORDINAL_POSITION | Int32 | 列标识编号。 |
| 列默认值 | 字符串 | 列的默认值 |
| IS_NULLABLE | 字符串 | 列的可空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 No。 |
| DATA_TYPE | 字符串 | 系统提供的数据类型。 |
| 字符最大长度 | Int32 – Sql8、Int16 – Sql7 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
| 字符八位组长度 | Int32 – SQL8、Int16 – Sql7 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
| NUMERIC_PRECISION | 无符号字节 | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
| NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
| NUMERIC_SCALE | Int32 | 近似数值数据、精确数值数据、整数数据或货币数据的标度。 否则,返回 NULL。 |
| 日期时间精度 | Int16 | 日期时间及 SQL-92 时间间隔数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
| CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
| CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
| CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
| COLLATION_CATALOG | 字符串 | 如果列属于字符数据或文本数据类型,则返回 master,表示定义该排序规则的数据库。 否则,此列为 NULL。 |
| IS_FILESTREAM | 字符串 | 如果列具有 FILESTREAM 属性,则为“是”。 NO,如果该列没有 FILESTREAM 属性。 |
| IS_SPARSE | 字符串 | 如果该列为稀疏列,则为 YES。 如果该列不是稀疏列,则为 NO。 |
| IS_COLUMN_SET | 字符串 | YES,如果该列是列集列。 如果该列不是列集列,则为 NO。 |
AllColumns
AllColumns 架构集合用于支持稀疏列。 AllColumns 与 Columns 架构集合具有相同的限制,并生成相同的 DataTable 架构。 唯一的区别在于,AllColumns 包含列集中的列,而这些列未包含在 Columns 架构集合中。 下表介绍了这些列。
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| TABLE_CATALOG | 字符串 | 表目录 |
| TABLE_SCHEMA | 字符串 | 包含该表的架构模式。 |
| TABLE_NAME | 字符串 | 表名。 |
| COLUMN_NAME | 字符串 | 列名称。 |
| ORDINAL_POSITION | Int32 | 列标识编号。 |
| 列默认值 | 字符串 | 列的默认值 |
| IS_NULLABLE | 字符串 | 列的可空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。 |
| DATA_TYPE | 字符串 | 系统提供的数据类型。 |
| 字符最大长度 | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
| 字符八位组长度 | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
| NUMERIC_PRECISION | 无符号字节 | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
| NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
| NUMERIC_SCALE | Int32 | 近似数值数据、精确数值数据、整数数据或货币数据的标度。 否则,返回 NULL。 |
| 日期时间精度 | Int16 | 日期时间及 SQL-92 时间间隔数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
| CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
| CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
| CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
| COLLATION_CATALOG | 字符串 | 如果列属于字符数据或文本数据类型,则返回 master,表示定义该排序规则的数据库。 否则,此列为 NULL。 |
| IS_FILESTREAM | 字符串 | 如果列具有 FILESTREAM 属性,则为“是”。 NO,如果该列没有 FILESTREAM 属性。 |
| IS_SPARSE | 字符串 | 如果该列为稀疏列,则为 YES。 如果该列不是稀疏列,则为 NO。 |
| IS_COLUMN_SET | 字符串 | YES,如果该列是列集列。 如果该列不是列集列,则为 NO。 |
ColumnSetColumns
ColumnSetColumns 架构集合用于支持稀疏列。 ColumnSetColumns 架构集合返回列集中所有列的架构。 下表介绍了这些列。
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| TABLE_CATALOG | 字符串 | 表目录 |
| TABLE_SCHEMA | 字符串 | 包含该表的架构模式。 |
| TABLE_NAME | 字符串 | 表名。 |
| COLUMN_NAME | 字符串 | 列名称。 |
| ORDINAL_POSITION | Int32 | 列标识编号。 |
| 列默认值 | 字符串 | 列的默认值 |
| IS_NULLABLE | 字符串 | 列的可空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。 |
| DATA_TYPE | 字符串 | 系统提供的数据类型。 |
| 字符最大长度 | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
| 字符八位组长度 | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
| NUMERIC_PRECISION | 无符号字节 | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
| NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
| NUMERIC_SCALE | Int32 | 近似数值数据、精确数值数据、整数数据或货币数据的标度。 否则,返回 NULL。 |
| 日期时间精度 | Int16 | 日期时间及 SQL-92 时间间隔数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
| CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
| CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
| CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
| COLLATION_CATALOG | 字符串 | 如果列属于字符数据或文本数据类型,则返回 master,表示定义该排序规则的数据库。 否则,此列为 NULL。 |
| IS_FILESTREAM | 字符串 | 如果列具有 FILESTREAM 属性,则为“是”。 NO,如果该列没有 FILESTREAM 属性。 |
| IS_SPARSE | 字符串 | 如果该列为稀疏列,则为 YES。 如果该列不是稀疏列,则为 NO。 |
| IS_COLUMN_SET | 字符串 | YES,如果该列是列集列。 如果该列不是列集列,则为 NO。 |
用户
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| uid | Int16 | 用户 ID,在此数据库中是唯一的。 1 为数据库所有者。 |
| user_name | 字符串 | 在此数据库中唯一的用户名和组名。 |
| createdate | 日期时间 | 帐户的添加日期。 |
| 更新日期 | 日期时间 | 帐户的上次更改日期。 |
视图
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| TABLE_CATALOG | 字符串 | 视图的目录。 |
| TABLE_SCHEMA | 字符串 | 包含该视图的架构。 |
| TABLE_NAME | 字符串 | 视图名称。 |
| 检查选项 | 字符串 | WITH CHECK OPTION 的类型。 如果原始视图使用 WITH CHECK OPTION 创建,则为 CASCADE。 否则,返回 NONE。 |
| 是否可更新 | 字符串 | 指定视图是否可更新。 始终返回 NO。 |
查看列
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| 查看目录 | 字符串 | 视图目录。 |
| VIEW_SCHEMA | 字符串 | 包含该视图的架构。 |
| VIEW_NAME | 字符串 | 视图名称。 |
| TABLE_CATALOG | 字符串 | 与此视图关联的表的目录。 |
| TABLE_SCHEMA | 字符串 | 包含与此视图关联的表的架构。 |
| TABLE_NAME | 字符串 | 与此视图关联的表的名称。 基表。 |
| COLUMN_NAME | 字符串 | 列名称。 |
用户定义类型
| ColumnName | 数据类型 | 说明 |
|---|---|---|
| assembly_name | 字符串 | 程序集文件的名称。 |
| udt_name | 字符串 | 程序集的类名称。 |
| version_major | 对象 | 主版本号。 |
| version_minor | 对象 | 次要版本号。 |
| version_build | 对象 | 内部版本号。 |
| 版本_修订 | 对象 | 修订号。 |
| culture_info | 对象 | 与此 UDT 关联的区域性信息。 |
| 公钥 | 对象 | 此程序集使用的公钥。 |
| is_fixed_length | 布尔 | 指定某类型的长度是否始终与 max_length 相同。 |
| max_length | Int16 | 类型的最大长度(字节数)。 |
| 创建日期 | 日期时间 | 程序集被创建/注册的日期。 |
| 权限集描述 | 字符串 | 程序集的权限集/安全级别的友好名称。 |