获取MSSQL 表结构中字段的备注、主键等信息的sql

获取MSSQL 表结构中字段的备注、主键等信息的SQL,可通过查询系统表和视图来完成。

以下是获取列备注和主键信息的示例SQL:

  1. 获取表中所有列的备注信息和主键信息
SELECT 
    c.name AS ColumnName,
    t.name AS DataType,
    c.is_nullable AS Nullable,
    p.value AS ColumnDescription,
    pk.name AS PrimaryKey
FROM 
    sys.columns c
    INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
    LEFT JOIN sys.extended_properties p ON p.major_id = c.object_id AND p.minor_id = c.column_id
    LEFT JOIN sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
    LEFT JOIN sys.indexes pk ON pk.object_id = ic.object_id AND pk.index_id = ic.index_id AND pk.is_primary_key = 1
WHERE 
    c.object_id = OBJECT_ID('YourTableName')
  1. 获取指定列的备注信息和主键信息
SELECT 
    c.name AS ColumnName,
    t.name AS DataType,
    c.is_nullable AS Nullable,
    p.value AS ColumnDescription,
    pk.name AS PrimaryKey
FROM 
    sys.columns c
    INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
    LEFT JOIN sys.extended_properties p ON p.major_id = c.object_id AND p.minor_id = c.column_id
    LEFT JOIN sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
    LEFT JOIN sys.indexes pk ON pk.object_id = ic.object_id AND pk.index_id = ic.index_id AND pk.is_primary_key = 1
WHERE 
    c.object_id = OBJECT_ID('YourTableName')
    AND c.name = 'YourColumnName'

以上两个示例查询语句中使用了sys.columns系统表和sys.extended_properties视图来获取表结构信息。其中,sys.columns系统表包含了关于表中各列的信息,而sys.extended_properties视图则包含了所有表、列、约束和其它对象的扩展属性。两个表可以通过object_id和minor_id两个列的值进行联合,从而获取到列的备注信息。

此外,上述查询语句还使用了sys.index_columns和sys.indexes系统表来获取指定列是否为主键。其中,sys.index_columns系统表包括了关于表中所有索引列的信息,而sys.indexes系统表则包含了关于表中所有索引的信息。两个表可以通过object_id和index_id两个列的值进行联合,从而获取到主键信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:获取MSSQL 表结构中字段的备注、主键等信息的sql - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 让服务器支持中文文件名下载的设置方法

    为了让服务器支持中文文件名的下载,通常需要进行一些配置。下面是一些常用的配置方法。 Apache服务器配置 如果你使用的是Apache服务器,可以在httpd.conf配置文件中添加以下内容来支持中文文件名下载: AddDefaultCharset UTF-8 AddCharset GB2312 .gb2312 .gb 其中,第一行让服务器默认使用UTF-8…

    other 2023年6月26日
    00
  • Java 变量类型及其实例

    Java 变量类型及其实例攻略 在Java中,变量是用来存储数据的容器。在声明变量时,需要指定变量的类型。Java中的变量类型可以分为基本数据类型和引用数据类型。下面将详细介绍Java的变量类型及其实例。 1. 基本数据类型 Java的基本数据类型包括整数类型、浮点数类型、字符类型和布尔类型。 1.1 整数类型 整数类型用于存储整数值,包括以下几种类型: b…

    other 2023年8月9日
    00
  • PHP跨平台获取服务器IP地址自定义函数分享

    PHP跨平台获取服务器IP地址自定义函数分享攻略 在PHP中,获取服务器的IP地址是一项常见的任务。然而,由于不同操作系统和服务器环境的差异,获取IP地址的方法也会有所不同。为了实现跨平台的IP地址获取,我们可以编写一个自定义函数。下面是一个详细的攻略,包含了两个示例说明。 步骤一:创建自定义函数 首先,我们需要创建一个自定义函数,该函数将根据服务器环境返回…

    other 2023年7月31日
    00
  • Access2007表中怎么添加现有字段?

    在Access 2007中,添加现有字段的步骤如下所述: 步骤1 首先,打开你要操作的表。然后,在表的“设计视图”(Design View)下,你可以看到所有字段的列表,包括其名称、数据类型、长度等信息在内。 步骤2 在这个视图中,找到你希望添加新字段的位置。比如,你可以将新字段放在已有字段的顶部、底部或中间。 步骤3 接下来,单击你要添加新字段的位置下方的…

    other 2023年6月25日
    00
  • element的el-form和el-table嵌套使用实现

    Element的el-form和el-table嵌套使用实现攻略 Element UI是一套基于Vue.js的组件库,其中el-form和el-table是两个常用的组件。el-form用于表单的输入和验证,el-table用于展示数据表格。本攻略将详细讲解如何嵌套使用el-form和el-table来实现复杂的表单和表格交互。 步骤一:创建el-form表…

    other 2023年7月28日
    00
  • 解析Linux系统中的/proc虚拟文件系统

    解析Linux系统中的/proc虚拟文件系统 什么是/proc虚拟文件系统 /proc是一个虚拟文件系统,意味着它不存储在硬盘上,而是由内核在运行时动态地生成。该文件系统提供了访问内核信息的接口,包括进程、系统信息、硬件设备等。因此,/proc被视为访问Linux操作系统的一个有用的方式,可以通过查看和解析这些虚拟文件来获取关于系统运行情况的详细信息。 如何…

    other 2023年6月27日
    00
  • uniapp开发微信小程序自定义顶部导航栏功能实例

    下面我来为大家详细讲解一下“uniapp开发微信小程序自定义顶部导航栏功能实例”的完整攻略。 一、准备工作 首先,需要使用HBuilderX开发工具创建一个新项目,选择uni-app项目,在项目配置的时候需要选择添加微信小程序插件,此处添加“微信小程序自定义组件插件”。其次,需要在“App.vue”文件中定义NavigationBar组件,定义方法如下: &…

    other 2023年6月25日
    00
  • unity游戏开发——教你做游戏(二):60个unity免费资源

    以下是Unity游戏开发——教你做游戏(二):60个Unity免费资源的完整攻略,包含两个示例说明。 Unity游戏开发——教你做游戏(二):60个Unity免费资源 Unity是一款非常流行的游戏引擎,它可以用于开发各种类型的游戏,包括2D和3D游戏。在Unity的开发过程中,我们需要使用各资源,如模型、纹理、音效等。在这篇攻略中,我们将介绍60个免费的U…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部