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

相关文章

  • PHP句法规则详解 入门学习

    当涉及到PHP句法规则的入门学习时,以下是一个完整的攻略,其中包含两个示例说明。 基本语法 PHP是一种服务器端脚本语言,用于开发动态网页和Web应用程序。以下是一些PHP的基本语法规则: PHP代码通常包含在<?php和?>标签之间。 PHP语句以分号;结尾。 PHP对大小写不敏感,但建议使用小写字母。 以下是一个示例,展示了一个简单的PHP程…

    other 2023年8月10日
    00
  • vue 使用vant插件做tabs切换和无限加载功能的实现

    下面是详细讲解“Vue 使用 Vant 插件做 Tabs 切换和无限加载功能的实现”的完整攻略。 1. 安装 Vant 插件 要使用 Vant 插件,我们首先需要在我们的项目中安装它。可以通过命令行来安装: npm i vant -S 安装完成之后,我们可以在项目的 main.js 文件中引入 Vant: import Vant from ‘vant’; i…

    other 2023年6月25日
    00
  • android系统id介绍

    Android系统id介绍 在Android系统中,每个Android设备都有一个唯一的标示符,即设备ID。这个ID在应用程序开发中也被称为Android ID,设备ID,系统ID等等,是一个可以用于标识Android设备的字符串。 获取Android ID 获取Android ID非常容易,只需要使用以下代码即可: String android_id = …

    其他 2023年3月28日
    00
  • Linux标准的文件系统知识分享(Ext2/Ext3/Ext4)

    Linux标准的文件系统知识分享(Ext2/Ext3/Ext4) 什么是Linux文件系统 Linux文件系统是指安装在Linux系统中的文件系统,它负责管理磁盘和文件的存储、分配等操作。在Linux中,文件系统一般指硬盘或分区上的文件系统。 Ext2 Ext2是一种非日志型文件系统,它的特点是简单、高效。Ext2不含有任何的日志机制,容易发生数据丢失或文件…

    other 2023年6月27日
    00
  • jvm虚拟机类加载机制详解

    jvm虚拟机类加载机制详解 什么是类加载 在 Java 程序中,类的加载是指将类的 .class 文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class 对象,用来封装在方法区内的数据结构。ClassLoader 类是用来加载 Java 类的类加载器。 类加载的步骤 Java 虚拟机将符号引用转换成…

    other 2023年6月25日
    00
  • Win10系统电脑鼠标点击文件夹没反应该怎么办?

    Win10系统电脑鼠标点击文件夹没反应该怎么办? 问题描述 在使用 Win10 系统的电脑时,有时候会出现点击文件夹没有反应的情况。这种情况可能会出现在多个文件夹中,并且也会影响到用户的正常使用体验。 可能原因 Windows Explorer 进程出现异常。 文件夹选项设置错误。 电脑存在病毒或恶意软件导致。 系统文件损坏。 解决方法 方法一:重启 Win…

    other 2023年6月27日
    00
  • 详解windowsservicewrapper(winsw.exe)及应用场景

    详解Windows Service Wrapper (WinSW.exe)及应用场景 Windows Service Wrapper (WinSW.exe)是一个开源项目,它允许您将任何可执行文件转换为Windows服务。WinSW.exe提供了一种简单的方法来管理和监视Windows服务,而无需编写自己的服务代码。以下是有关WinSW.exe的详细信息。 …

    other 2023年5月6日
    00
  • 解析layoutsubviews

    以下是详细讲解“解析layoutSubviews的完整攻略”的标准Markdown格式文本: 解析layoutSubviews的完整攻略 在iOS开发中,layoutSubviews是UIView的一个重要方法,用于管理视图的布局。本文将介绍layoutSubviews的基本概念、使用方法和两个示例说明。 1. layoutSubviews的基本概念 lay…

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