当前位置: 首页 > article >正文

T-SQL 语言基础: SQL 数据库对象元数据及配置信息获取

目录

  1. 介绍
  2. 目录视图
    1. 获取表和架构名称
    2. 获取列信息
  3. 信息架构视图
    1. 获取表信息
    2. 获取列信息
  4. 系统存储过程和函数
    1. 获取对象列表
    2. 获取对象详细信息
    3. 获取约束信息
    4. 获取数据库属性信息
  5. 总结
  6. 引用

介绍

在 SQL 数据库管理中,获取数据库对象的元数据信息是至关重要的。元数据提供了关于数据库结构和内容的详细信息,包括表、列、索引、约束等。本文将介绍获取 SQL 数据库对象元数据信息的工具和方法,包括目录视图、信息架构视图以及系统存储过程和函数。

目录视图

目录视图提供了关于数据库中各对象的详细信息,包括 SQL 特定信息。以下是一些常用的目录视图及其使用方法。

获取表和架构名称

可以使用 sys.tables 视图获取数据库中所有表的名称及其架构名称。

SELECT SCHEMA_NAME(schema_id) AS TABLE_SCHEMA_NAME,name AS TABLE_NAME
FROM sys.tables;

输出示例:

TABLE_SCHEMA_NAME    TABLE_NAME
dbo                  T1

获取列信息

可以使用 sys.columns 视图获取特定表的列信息。

SELECTname,TYPE_NAME(system_type_id) AS DATA_TYPE,max_length,collation_name,is_nullable
FROM sys.columns
WHERE object_id = OBJECT_ID(N'Sales.Orders');

输出示例:

name         DATA_TYPE    max_length    collation_name       is_nullable
shipname     nvarchar     80            Chinese_PRC_CI_AS    0

信息架构视图

信息架构视图是 ANSI SQL 标准定义的视图,提供了关于数据库对象的标准化信息。

获取表信息

可以使用 information_schema.TABLES 视图获取数据库中所有基本表的信息。

SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_TYPE = N'BASE TABLE';

获取列信息

可以使用 information_schema.COLUMNS 视图获取特定表的列信息。

SELECTCOLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLLATION_NAME, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = N'Sales' AND TABLE_NAME = N'Orders';

输出示例:

COLUMN_NAME    DATA_TYPE    CHARACTER_MAXIMUM_LENGTH    COLLATION_NAME       IS_NULLABLE
shipname       nvarchar     40                          Chinese_PRC_CI_AS    NO

系统存储过程和函数

SQL Server 提供了系统存储过程和函数,用于获取数据库对象的详细信息。

获取对象列表

可以使用 sp_tables 存储过程获取当前数据库中可以查询的对象列表。

EXEC sys.sp_tables;

输出示例:

TABLE_QUALIFIER    TABLE_OWNER    TABLE_NAME    TABLE_TYPE    REMARKS
TSQLFundamentals2008    dbo    nums    TABLE    NULL

获取对象详细信息

可以使用 sp_help 存储过程获取特定对象的详细信息。

EXEC sys.sp_help @objname = N'Sales.Orders';

获取约束信息

可以使用 sp_helpconstraint 存储过程获取特定表的约束信息。

EXEC sys.sp_helpconstraint @objname = N'Sales.Orders';

获取数据库属性信息

可以使用以下函数获取数据库和对象的特定属性信息。

-- 返回数据库实例的产品级别
SELECT SERVERPROPERTY('ProductLevel');  -- RTM-- 返回指定数据库的排序规则
SELECT DATABASEPROPERTYEX(N'TSQLFundamentals2008', 'collation');  -- Chinese_PRC_CI_AS-- 返回表是否具有主键
SELECT OBJECTPROPERTY(OBJECT_ID(N'Sales.Orders'), 'TableHasPrimaryKey');  -- 1-- 返回指定列的属性信息
SELECT COLUMNPROPERTY(OBJECT_ID(N'Sales.Orders'), N'shipcountry', 'AllowsNull');  -- 1

总结

本文介绍获取 SQL 数据库对象元数据信息的工具和方法,包括目录视图、信息架构视图以及系统存储过程和函数。

引用

  • Microsoft Docs: Catalog Views
  • Microsoft Docs: Information Schema Views
  • Microsoft Docs: System Stored Procedures
**喜欢的话,请收藏 | 关注(✪ω✪)**
……**万一有趣的事还在后头呢,Fight!!(o^-^)~''☆ミ☆ミ**……

相关文章:

T-SQL 语言基础: SQL 数据库对象元数据及配置信息获取

目录 介绍目录视图 获取表和架构名称获取列信息 信息架构视图 获取表信息获取列信息 系统存储过程和函数 获取对象列表获取对象详细信息获取约束信息获取数据库属性信息 总结引用 介绍 在 SQL 数据库管理中,获取数据库对象的元数据信息是至关重要的。元数据提供了…...

网络编程 day01

网络编程 day01 0. 网络编程课程介绍1. 认识网络1.网络发展史2.局域网与广域网局域网(LAN)广域网(Wan) 3.光猫4.路由器5.交换机与路由器6.网线 2. IP1. 基本概念2. 网络号/主机号(二级划分)3. IP地址分类整…...

Tomcat 8 安装包下载

Tomcat 8 安装包下载 【下载地址】Tomcat8安装包下载 本仓库提供了一个包含 Windows 和 Linux 版本的 Tomcat 8 安装包,方便用户快速下载并部署 Tomcat 8 服务器 [这里是图片001] 项目地址: https://gitcode.com/open-source-toolkit/fda7c 简介 本仓库提供了一个…...

java 与 c++在遍历 map 数据结构上的一些差异

在编写动态规划时,发现了一个现象: C 中的 unordered_map 和 map 可以一边遍历一边添加数据Java 中的 HashMap 却不能,Java 只能通过 ConcurrentSkipListMap 实现在遍历中添加数据。 问了 grok,原来是两个编程语言在 map 数据结…...

vscode通过ssh远程连接(linux系统)不能跳转问题

1.问题描述 unbantu中的vscode能够通过函数跳转到函数定义,而windows通过ssh连接unbantu的vscode却无法跳转 2.原因: 主要原因是这里缺少插件,这里是unbantu给主机的服务器,与ubantu本地vscode插件相互独立,能否跳转…...

unity pico开发 五 UI交互

文章目录 添加画布添加交互组件取消传送射线对UI的控制解决按扳机键会传送的冲突按下按键呼出菜单,并让菜单出现在头的前方 添加画布 创建一个新画布,添加一个Button,将画布改为world space,然后缩放改为0.001,调整到…...

软开经验总结

文章目录 软开经验总结一、二次开发时候操作步骤二、logger的作用!!!三、git使用 软开经验总结 一、二次开发时候操作步骤 改 SDK 和 language level改 maven 配置改数据库 注意Mysql 版本 差别是否过大!!&#xff0…...

攻克 FBX 转 STL 难题,迪威模型网搭建通途

在 3D 内容创作与 3D 打印的广袤天地中,不同的文件格式宛如一道道独特的密码,各自守护着特定的 3D 世界。今天,我们聚焦于 FBX 与 STL 这两种格式,以及如何借助迪威模型网实现 FBX 到 STL 的无缝转换。​ FBX 与 STL:…...

QT 中的元对象系统(三):QObject深入理解

目录 1.简介 2.特性 2.1.对象树与内存管理 2.2.信号与槽机制 2.3.事件处理 2.4.属性系统 2.4.1.Q_PROPERTY配置的属性 2.4.2.动态属性 2.4.3.实现原理 2.5.国际化支持 2.6. 定时器支持 3.类设计(q和d指针) 4.总结 1.简介 QObject这个 class 是 QT 对象模型的核心&…...

二、QT和驱动模块实现智能家居-----问题汇总1

1、文件地址改变后必须在QT下更改地址 2、指定了QT内Kits下的Sysroot头文件地址,但是还是找不到头文件: 3、提示无法执行QT程序:先干掉之前的QT程序 ps //查看程序PIDkill -9 PID 4、无法执行QT程序 1)未设置环境变量 …...

Golang的数据库分库分表

# Golang的数据库分库分表 什么是数据库分库分表 数据库分库分表是指将单一的数据库拆分成多个库,每个库中包含多张表,以提高数据库的性能和可伸缩性。通常在大型应用中,单一的数据库往往无法满足高并发和海量数据的需求,因此需要…...

Docker + Vue2 热重载:为什么需要 CHOKIDAR_USEPOLLING=true?

在 Docker 中运行 Vue 2 项目时,许多开发者会遇到 代码修改后热重载(Hot Reload)失效的问题。虽然 Vue 2 默认支持热重载,但由于 Docker 文件监听机制的特殊性,Webpack 的 watch 机制可能无法正常工作。 本文将深入解析…...

NModbus 连接到Modbus服务器(Modbus TCP)

1、在项目中通过NuGet添加NModbus,在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…...

基于vue3和flask开发的前后端管理系统(一):项目启动准备

准备工作 我们需要准备以下工具 vue3:构建前端 tailwind css:样式库vite:快速构建vue项目pinia :vue3 的事件管理器 flask:后端代码Mysql:数据库 heidisql:数据库图形化界面 vscode&#xff1…...

单例模式(线程案例)

单例模式可以分为两种:1.饿汉模式 2.懒汉模式 一.饿汉模式 //饿汉模式👇 class MySingleTon{//因为这是一个静态成员变量,在类加载的时候,就创建了private static MySingleTon mySingleTon new MySingleTon();//创建一个静…...

通过多线程分别获取高分辨率和低分辨率的H264码流

目录 一.RV1126 VI采集摄像头数据并同时获取高分辨率码流和低分辨率码流流程 ​编辑 1.1初始化VI模块: 1.2初始化RGA模块: 1.3初始化高分辨率VENC编码器、 低分辨率VENC编码器: 1.4 VI绑定高分辨率VENC编码器,VI绑定RGA模块…...

智慧农业中光谱相机对土壤成分的无损检测应用‌

可浏览之前发布的一篇文章:光谱相机在农业中的具体应用案例 一、土壤成分定量分析 ‌养分检测‌ 光谱相机通过捕捉土壤反射的特定波长光线,可精准检测氮、磷、钾等主要养分含量,以及有机质和水分比例。例如,不同养分对近红外波段…...

Muduo + OpenSSL 网络交互完整流程

🔥 Muduo OpenSSL 网络交互完整流程 这套架构结合了 Muduo(网络库) OpenSSL(TLS/SSL 加密) BIO(缓存),整个数据流动过程如下: 🌍 1. 网络通信的基本流程 M…...

2025年能源工作指导意见重点内容

一、总体目标 能源供应保障 全国发电总装机容量达到36亿千瓦以上,新增新能源发电装机2亿千瓦以上,发电量目标10.6万亿千瓦时,跨省跨区输电能力持续提升。 煤炭稳产增产,原油产量保持2亿吨以上,天然气产量较快增长&am…...

DNS 详细过程 与 ICMP

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 DNS (Domain Name System) 快速了解🦋 DNS 背景🦋 域名简介🦋 真实地址查询 —— DNS🎀 域名的层级关系&am…...

学到什么记什么(25.3.3)

Upload-labs 今日重新做了一下文件上传漏洞&#xff0c;这里第一题之前采用直接抓包改后缀名.jpg为.php&#xff0c;再写入一句话<?php phpinfo();?>然后放行&#xff0c;得到图片地址&#xff08;可复制&#xff09;&#xff0c;本来直接访问图片地址即可得到敏感信息…...

阿里云服务器部署项目笔记 实操 centos7.9

阿里云服务器部署项目笔记 实操 centos7.9 springboot vue elementUImysqlredis 相关的redis,mysql,nginx镜像,jdk 通过网盘分享的文件&#xff1a;docker镜像 链接: https://pan.baidu.com/s/15VwcWBP4Jy07xADuvylgQw?pwdm2g9 提取码: m2g9 配置环境 连接云服务器 安装…...

完全背包变体-排列和组合的循环顺序问题

排列&#xff0c;区分顺序&#xff1a;内层循环物品{1,2}&#xff0c;可以让3-2->1-1和3-1->2-2都计算一遍。 组合不区分顺序&#xff1a;外层循环物品{1,2}&#xff0c;只会按照物品顺序填充 总结&#xff1a;排列问题中&#xff0c;每个容量的状态更新时&#xff0c;允…...

华为飞腾D2000芯片(基于ARM架构)的欧拉操作系统(openEuler)上部署MySQL

一、环境准备 确认系统架构 uname -m # 应输出 aarch64&#xff08;即ARM64&#xff09;更新系统 sudo dnf update -y安装基础依赖 sudo dnf install -y libaio numactl openssl-devel tar wget二、安装MySQL 方案1&#xff1a;通过openEuler官方仓库安装&#xff08;推荐&am…...

C#开发——日期操作类DateTime

在C#中&#xff0c;日期和时间的操作主要通过 System.DateTime 类来实现。 DateTime 提供了丰富的属性和法&#xff0c;用于处理日期和时间的创建、格式化、比较和计算等操作。以下是一些常用的日期函数和特性&#xff1a; 一、创建日期和时间 1、直接指定日期和时间&…...

win32汇编环境,窗口程序中使控件子类化的示例一

;运行效果 ;win32汇编环境,窗口程序中使编辑框控件子类化的示例一 ;窗口子类化&#xff0c;就是把某种控件&#xff0c;自已再打造一遍&#xff0c;加入自已的功能。比如弄个特殊形状的按钮&#xff0c;或只能输入特殊字符的编辑框 ;当然&#xff0c;一般来说&#xff0c;这都是…...

多镜头视频生成、机器人抓取、扩散模型个性化 | Big Model weekly第58期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot 本文介绍了一种名为GLM-4-Voice的智能且类人化的端到端语音聊天机器人。它支持中文和英文&#xff0c;能够进行实时语音对话&a…...

iOS实现一个强大的本地状态记录容器

我们开发中经常会遇到这样的场景&#xff0c;就是我们客户端用户进行了某个操作&#xff0c;这个操作影响了数据的状态&#xff0c;但是我们又不方便重新请求一次数据&#xff0c; 这个时候&#xff0c;就需要我们记录一下本地状态在内存中&#xff0c;随着业务越来越复杂&…...

第十四届蓝桥杯:(二分算法)字串简写

这道题我们的做法是开两个vector&#xff0c;分别把a和b字符的下标存进去&#xff0c;然后遍历a字符&#xff0c;我们要求长度必须大于等于k&#xff0c;我们可以画个图&#xff0c;也就是说b的下标减a的下标必须大于等于k-1 也就是b的下标必须大于等于a的下标k-1 我们用二分找…...

制服小程序的“滑手”:禁用页面左右滑动全攻略

哈哈&#xff0c;看来你已经很聪明地发现了小程序中左右滑动的“顽皮”行为&#xff01;&#x1f604; 没错&#xff0c;我们可以通过设置 disableScroll 属性来“管教”它&#xff0c;同时结合 CSS 样式让页面既禁得住横向“乱跑”&#xff0c;又能顺畅地上下滚动。你的方案已…...