获取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日

相关文章

  • visualrouteformacos体验

    VisualRoute for Mac OS – 网络探测工具的最佳体验 作为一个网站站长,我们经常需要了解我们的网站在不同地区的访问速度和网络质量,以确保用户可以获得最佳的访问体验。这就需要一款好用的网络探测工具。VisualRoute for Mac OS 是一款功能齐全的网络探测工具,它可以帮助我们轻松地诊断网络问题,并提供可视化的故障排除和网络优化建…

    其他 2023年3月28日
    00
  • 顶点着色器详解(vertexshaders)

    顶点着色器是图形渲染管线中的一个重要组成部分,用于处理输入的顶点数据并将其转换为屏幕空间中的坐标。以下是顶点着色器的完整攻略,包含两个示例说明。 什么是顶点着色器? 顶点着色器是图形渲染管线中的一个阶段,用于处理输入的顶点数据并将其转换为屏幕空间中的坐标。它是在GPU上执行的程序,可以通过编写着色器代码来控制顶点的位置、颜色、法线等属性。 如何编写顶点着色器…

    other 2023年5月9日
    00
  • javascript中childnodes和children的区别

    当然,我可以为您提供有关“JavaScript中childNodes和children的区别”的完整攻略,以下是详细说明: 什么是childNodes和children? 在JavaScript中,childNodes和children都是用于访问元素的节点的属性。它们都返回一个节点列表,但它们之间有一些区别。 childNodes返回一个包含所有子节点的节…

    other 2023年5月7日
    00
  • Opencv+Python实现缺陷检测

    Opencv+Python实现缺陷检测 Opencv是一个开源的计算机视觉库,提供了许多常用的图像处理函数和算法。Python是一种高级编程语言,能够轻松地使用Opencv进行图像处理和分析。本文将介绍使用Opencv和Python实现缺陷检测的方法。 缺陷检测的原理 缺陷检测是指识别和定位在图像中的缺陷部分。缺陷可以是任何形式的,例如裂纹、凸起、凹陷等等。…

    其他 2023年3月28日
    00
  • vdpa原理和实现

    以下是关于“vdpa原理和实现”的完整攻略,包括定义、原理、实现、示例说明和注意事项。 定义 vDPA(Virtual Data Path Acceleration)是一种虚拟化网络设备的技术,它可以将物理网络设备的数据路径卸载到虚拟机中,从而提高虚拟机的网络性能。vDPA技术是由Linux Foundation的DPDK社区开发的。 原理 vDPA技术的原…

    other 2023年5月8日
    00
  • package.json管理依赖包版本详解

    package.json管理依赖包版本详解 在Node.js项目中,package.json文件是用来管理项目依赖包的配置文件。通过package.json,我们可以指定项目所需的依赖包及其版本。下面是关于如何管理依赖包版本的详细攻略。 1. 创建package.json文件 首先,我们需要在项目根目录下创建一个package.json文件。可以通过以下命令…

    other 2023年8月3日
    00
  • Win10系统如何清理C盘空间容量(不使用第三方工具)

    Win10系统如何清理C盘空间容量(不使用第三方工具) 清理C盘空间容量可以帮助提高系统性能和释放存储空间。以下是一些方法,可以帮助您在不使用第三方工具的情况下清理Win10系统的C盘空间。 1. 清理临时文件 Win10系统会生成大量的临时文件,占用了C盘的存储空间。您可以通过以下步骤清理这些临时文件: 打开“文件资源管理器”(Windows键 + E)。…

    other 2023年8月1日
    00
  • 使用单例模式来打造activitymanager类

    使用单例模式来打造ActivityManager类 在Android应用程序中,管理Activity是一个很重要的问题,可以使用一个单例模式实现Activity的管理。 单例模式概述 单例模式是一种常用的设计模式,它可以确保一个类只有一个实例,提供对这个实例特定访问点。在Java中,实现单例模式一般有两种方式: 饿汉式:在程序启动时即实例化,线程安全,但不考…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部