SQL Server 架构集合
适用于: .NET Framework .NET .NET Standard
除了通用架构集合,Microsoft SqlClient Data Provider for SQL Server 还支持其他架构集合。 架构集合因使用的 SQL Server 的版本而稍有不同。 要确定支持的架构集合列表,请以无参数的形式或使用架构集合名称“MetaDataCollections”调用 GetSchema 方法。 此时将返回 DataTable,包含支持的架构集合列表、每个架构集合支持的限制数以及所使用的标识符部分数。
数据库
ColumnName | 数据类型 | 说明 |
---|---|---|
database_name | 字符串 | 数据库的名称。 |
dbid | Int16 | 数据库 ID。 |
create_date | DateTime | 数据库的创建日期。 |
Foreign Keys
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_schema | 字符串 | 包含索引关联的表的架构。 |
table_name | 字符串 | 表名。 |
index_name | 字符串 | 索引名称。 |
type_desc | 字符串 | 索引类型可以为以下值之一: - 堆 - 群集 - 非群集 - XML - 空间 |
IndexColumns
ColumnName | 数据类型 | 说明 |
---|---|---|
constraint_catalog | 字符串 | 索引所属的编录。 |
constraint_schema | 字符串 | 包含索引的架构。 |
constraint_name | 字符串 | 索引的名称。 |
table_catalog | 字符串 | 索引关联的表名。 |
table_schema | 字符串 | 包含索引关联的表的架构。 |
table_name | 字符串 | 表名。 |
column_name | 字符串 | 索引关联的列名。 |
ordinal_position | Int32 | 列序号位置。 |
KeyType | Byte | 对象的类型。 |
index_name | 字符串 | 索引名称。 |
过程
ColumnName | 数据类型 | 说明 |
---|---|---|
SPECIFIC_CATALOG | 字符串 | 编录的特定名称。 |
SPECIFIC_SCHEMA | 字符串 | 特定的架构名称。 |
SPECIFIC_NAME | 字符串 | 特定的目录名称。 |
ROUTINE_CATALOG | 字符串 | 存储过程所属的编录。 |
ROUTINE_SCHEMA | 字符串 | 包含存储过程的架构。 |
ROUTINE_NAME | 字符串 | 存储过程的名称。 |
ROUTINE_TYPE | 字符串 | 对于存储过程,返回 PROCEDURE,对于函数,返回 FUNCTION。 |
CREATED | DateTime | 过程的创建时间。 |
LAST_ALTERED | DateTime | 上次修改过程的时间。 |
过程参数
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 | 字符串 | 系统提供的数据类型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 | 二进制或字符数据类型的最大长度(字符)。 否则,返回 NULL。 |
CHARACTER_OCTET_LENGTH | 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 | Byte | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
NUMERIC_SCALE | Int32 | 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。 否则,返回 NULL。 |
DATETIME_PRECISION | 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 | 列标识号。 |
COLUMN_DEFAULT | 字符串 | 列的默认值。 |
IS_NULLABLE | 字符串 | 列的为空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 No。 |
DATA_TYPE | 字符串 | 系统提供的数据类型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 – Sql8、Int16 – Sql7 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
CHARACTER_OCTET_LENGTH | Int32 – SQL8、Int16 – Sql7 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
NUMERIC_PRECISION | Unsigned Byte | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
NUMERIC_SCALE | Int32 | 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。 否则,返回 NULL。 |
DATETIME_PRECISION | Int16 | datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
COLLATION_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示定义分页的数据库。 否则,此列为 NULL。 |
IS_FILESTREAM | 字符串 | YES 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 | 列标识号。 |
COLUMN_DEFAULT | 字符串 | 列的默认值。 |
IS_NULLABLE | 字符串 | 列的为空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。 |
DATA_TYPE | 字符串 | 系统提供的数据类型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
CHARACTER_OCTET_LENGTH | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
NUMERIC_PRECISION | Unsigned Byte | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
NUMERIC_SCALE | Int32 | 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。 否则,返回 NULL。 |
DATETIME_PRECISION | Int16 | datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
COLLATION_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示定义分页的数据库。 否则,此列为 NULL。 |
IS_FILESTREAM | 字符串 | YES 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 | 列标识号。 |
COLUMN_DEFAULT | 字符串 | 列的默认值。 |
IS_NULLABLE | 字符串 | 列的为空性。 如果此列允许 NULL,此列将返回 YES。 否则,返回 NO。 |
DATA_TYPE | 字符串 | 系统提供的数据类型。 |
CHARACTER_MAXIMUM_LENGTH | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字符)。 否则,返回 NULL。 |
CHARACTER_OCTET_LENGTH | Int32 | 二进制数据、字符数据或文本和图像数据的最大长度(字节)。 否则,返回 NULL。 |
NUMERIC_PRECISION | Unsigned Byte | 近似数字数据、精确数字数据、整数数据或货币数据的精度。 否则,返回 NULL。 |
NUMERIC_PRECISION_RADIX | Int16 | 近似数字数据、精确数字数据、整数数据或货币数据的精度基数。 否则,返回 NULL。 |
NUMERIC_SCALE | Int32 | 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。 否则,返回 NULL。 |
DATETIME_PRECISION | Int16 | datetime 及 SQL-92 interval 数据类型的子类型代码。 对于其他数据类型,返回 NULL。 |
CHARACTER_SET_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示字符集所处的数据库。 否则,返回 NULL。 |
CHARACTER_SET_SCHEMA | 字符串 | 始终返回 NULL。 |
CHARACTER_SET_NAME | 字符串 | 如果此列为字符数据或文本数据类型,则返回字符集的唯一名称。 否则,返回 NULL。 |
COLLATION_CATALOG | 字符串 | 如果列为字符数据或文本数据类型,则返回 master,指示定义分页的数据库。 否则,此列为 NULL。 |
IS_FILESTREAM | 字符串 | YES FILESTREAM NO,如果列不具有 FILESTREAM 属性。 |
IS_SPARSE | 字符串 | YES,如果列是稀疏列。 NO,如果列不是稀疏列。 |
IS_COLUMN_SET | 字符串 | YES,如果列是一个列集列。 NO |
用户
ColumnName | 数据类型 | 说明 |
---|---|---|
uid | Int16 | 用户 ID,在此数据库中是唯一的。 1 为数据库所有者。 |
user_name | 字符串 | 在此数据库中唯一的用户名和组名。 |
createdate | DateTime | 帐户的添加日期。 |
updatedate | DateTime | 帐户的上次更改日期。 |
视图
ColumnName | 数据类型 | 说明 |
---|---|---|
TABLE_CATALOG | 字符串 | 视图的编录。 |
TABLE_SCHEMA | 字符串 | 包含视图的架构。 |
TABLE_NAME | 字符串 | 视图名。 |
CHECK_OPTION | 字符串 | WITH CHECK OPTION 的类型。 如果原始视图使用 WITH CHECK OPTION 创建,则为 CASCADE。 否则,返回 NONE。 |
IS_UPDATABLE | 字符串 | 指定视图是否可更新。 始终返回 NO。 |
ViewColumns
ColumnName | 数据类型 | 说明 |
---|---|---|
VIEW_CATALOG | 字符串 | 视图的编录。 |
VIEW_SCHEMA | 字符串 | 包含视图的架构。 |
VIEW_NAME | 字符串 | 视图名。 |
TABLE_CATALOG | 字符串 | 与此视图关联的表的编录。 |
TABLE_SCHEMA | 字符串 | 包含与此视图关联的表的架构。 |
TABLE_NAME | 字符串 | 与此视图关联的表的名称。 基表。 |
COLUMN_NAME | 字符串 | 列名称。 |
UserDefinedTypes
ColumnName | 数据类型 | 说明 |
---|---|---|
assembly_name | 字符串 | 程序集文件的名称。 |
udt_name | 字符串 | 程序集的类名。 |
version_major | 对象 | 主版本号。 |
version_minor | 对象 | 次版本号。 |
version_build | 对象 | Build 号。 |
version_revision | 对象 | 修订号。 |
culture_info | 对象 | 与此 UDT 关联的区域性信息。 |
public_key | 对象 | 此程序集使用的公钥。 |
is_fixed_length | Boolean | 指定类型的长度是否始终与 max_length 相同。 |
max_length | Int16 | 类型的最大长度(字节数)。 |
Create_Date | DateTime | 创建/注册程序集的日期。 |
Permission_set_desc | 字符串 | 程序集的权限集/安全级别的友好名称。 |