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

yizhihongxing

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

相关文章

  • 网管必读-常用网络命令

    标题:网管必读-常用网络命令 在日常工作中,作为一名网管,经常需要使用网络命令来管理和维护网络。本攻略将全面介绍常用网络命令及其用途。 网络基本信息 ifconfig ifconfig命令用于查看和配置网络接口信息,如IP地址、子网掩码、MAC地址、传输率等等。 示例: $ ifconfig -a eth0 Link encap:Ethernet HWadd…

    other 2023年6月26日
    00
  • win10如何改成自己想要的文件夹用户名?

    首先需要明确一点,Win10的每个用户都有一个唯一的用户名,当我们新建一个用户时,系统会默认以英文缩写为用户名,如:user1、user2等,但是有时候我们不满意这个默认的用户名,想将其改成自己想要的名称。这个就需要修改注册表中的指定键值来实现。 以下是详细步骤: 1.首先,点击Win10的“开始”菜单,输入“CMD”,在搜索结果中选择“以管理员身份运行”。…

    other 2023年6月27日
    00
  • Android获取应用程序名称(ApplicationName)示例

    下面我将为你详细讲解“Android获取应用程序名称(ApplicationName)示例”的完整攻略。 什么是应用程序名称? 在 Android 系统中,应用程序就像一个个小箱子,可以在其中存放各种代码逻辑、图片和数据等,每个应用程序都有自己的名称,比如“微信”、“淘宝”、“QQ”等。 获取应用程序名称的方法 方法一:通过 PackageManager 获…

    other 2023年6月25日
    00
  • 英伟达公布 RTX 4080 游戏测试数据 将于11月上市

    很抱歉,作为一个文本模型,我无法提供实时的新闻和产品发布信息。请您通过查阅英伟达官方网站、科技新闻网站或其他可靠渠道获取最新的关于RTX 4080游戏测试数据和上市信息。

    other 2023年10月16日
    00
  • 值得收藏的iOS开发常用代码块

    值得收藏的iOS开发常用代码块 iOS开发中常常会用到一些重复性比较高的代码块,而且这些代码块通常非常规范。将这些常用的代码块整理成一个文件或者文件夹,可以有效地提高 iOS 开发的效率,帮助让 iOS 开发者更专注于业务逻辑的实现。 收集途径 值得收藏的 iOS 开发常用代码块,有以下收集途径: Apple 官方文档中的示例代码:Apple Develop…

    other 2023年6月26日
    00
  • googlechrome快捷键大全

    Google Chrome快捷键大全 作为一款现代化的浏览器,Google Chrome已经成为了人们网上浏览的首选之一。而熟练掌握Google Chrome的快捷键,则可以更加有效率地使用它。这篇文章将会介绍许多实用的Google Chrome的系统快捷键和网页快捷键。 系统快捷键 以下这些快捷键可用于控制整个操作系统而不是Chrome本身。这些快捷键仅适…

    其他 2023年3月29日
    00
  • 微信小程序开发实战快速入门教程

    微信小程序开发实战快速入门教程 本文将详细讲解如何使用微信小程序进行开发,并快速入门。 第一步:开发环境搭建 在开始小程序开发之前,需要先创建开发者账号并下载微信开发者工具。开发者账号和微信开发者工具都可以在微信公众平台官网上申请。 安装微信开发者工具后,打开并登录开发者账号。在首页选择“新建小程序”,填写小程序信息,生成代码模板并开始开发。 第二步:小程序…

    other 2023年6月26日
    00
  • SpringBoot整合mybatis-plus进阶详细教程

    SpringBoot整合mybatis-plus进阶详细教程 前言 本文将详细介绍如何在SpringBoot项目中整合mybatis-plus,使用该框架进行数据库操作,提高开发效率。 环境准备 JDK 1.8 SpringBoot 2.3.0.RELEASE mybatis-plus 3.3.0 MySQL 5.7 集成mybatis-plus 引入依赖 …

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