除了通用架构集合之外,适用于 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 | 类型的最大长度(字节数)。 |
| 创建日期 | 日期时间 | 创建/注册程序集的日期。 |
| 权限集描述 | 字符串 | 程序集的权限集合或安全级别的友好名称。 |