MS SQL查询库、表、列数据结构信息汇总

前言

一般情况我们下,我们是知道数据库的表、列信息的(因为数据库是我们手动设计),但特殊情况下,如果你只能拿到数据库连接信息,也就是知道的一个数据库名的情况下,你要怎么得到它下面的所有表名,所有列表,以及主键,是否自增?等这些信息,那么本文将给您揭晓这个答案。

内容

废话不多说,直接上码,一码永逸,希望与大家共享。

1、某数据库下的所有表。

代码如下:

SELECT TABLE_NAME FROM 数据库名.INFORMATION_SCHEMA.TABLES 

结果如图:

 

2、某表的所有字段。

代码如下:

 

SELECT NAME FROM DBO.SYSCOLUMNS WHERE DBO.SYSCOLUMNS.ID=(
SELECT ID FROM DBO.SYSOBJECTS WHERE DBO.SYSOBJECTS.XTYPE = 'U' AND NAME='表名')

 

结果如图:

 

3、查询某表中的主键。

代码如下:

 

EXEC SP_PKEYS 表名

 

结果如图:

 

4、查询主键是否为自增。

代码如下:

IF EXISTS(SELECT TOP 1 1 FROM SYSCOLUMNS SC WHERE SC.ID = 
(SELECT ID FROM DBO.SYSOBJECTS WHERE DBO.SYSOBJECTS.XTYPE = 'U' AND NAME='表名')
AND COLUMNPROPERTY(SC.ID, SC.NAME, 'ISIDENTITY') = 1)
SELECT 1 as 'ISIDENTITY'
ELSE SELECT 0 as 'ISIDENTITY'

结果如图:

 

5、查询所有字段的类型。

 代码如下:

SELECT (SELECT NAME FROM DBO.SYSTYPES WHERE DBO.SYSTYPES.XUSERTYPE=SYSCOLUMNS.XTYPE) AS FILEDTYPE
FROM DBO.SYSCOLUMNS WHERE DBO.SYSCOLUMNS.ID=(
SELECT ID FROM DBO.SYSOBJECTS WHERE DBO.SYSOBJECTS.XTYPE = 'U' AND NAME='表名')

结果如下:

 

结束

拥有以上代码,基本在数据库“反射”查询的时候,能派上用处,也基本够用了,其原理就是利用SqlServer的内置函数,系统存储方法,以系统表(sysobjects、syscolumns)的id为主导线,展开的查询,其中sysobjects的id等于syscolumns表中的id,注意,每修改一次表结构(即数据列)这个id都会发生改变。

祝大家好运,如果觉得有用,请点击支持,谢谢。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何搭建一个完整的Vue3.0 + ts 的项目

如何搭建一个完整的Vue3.0 ts 的项目 相信9月18日尤大大的关于Vue3.0的发表演讲大家一定有所关注,现在Vue3.0 也已经进入RC阶段(最终产品的候选版本,如果没有问题则可发布成为正式版本)。所以Vue3.0的学习是我们必然的趋势,今天&…

手机客户端和服务器端通信

2019独角兽企业重金招聘Python工程师标准>>> 手机客户端与服务器端的通信,不同于浏览器与服务器端的通信。浏览器和服务器端的通信依靠session去维持一个会话, 当这一切搬到手机上仿佛一切都失效了。 1.在上一家公司的时候公司同事曾经问过我…

linux下boot文件是什么文件,Boot.ini是什么文件?Boot.ini文件在哪里

Boot.ini 文件是系统启动引导程序文件,装多系统或者重装系统的时候会用到它。因此,由于系统启动而造成的问题也不在少数,那Boot.ini是什么文件呢?Boot.ini文件在哪里?下面就跟小编一起去了解一下吧!步骤如下…

Kubeflow使用Kubernetes进行机器学习GPU分布式训练

Kubeflow使用Kubernetes进行机器学习 Kubeflow是Google推出的基于kubernetes环境下的机器学习组件,通过Kubeflow可以实现对TFJob等资源类型定义,可以像部署应用一样完成在TFJob分布式训练模型的过程。最初的设计是将Kubernetes和Tensorflow结合实现对Te…

hibernate 程序运行时的错误,及解决办法(不定期更新)

这个错误是因为&#xff1a;没有配置hibernate.cfg.xml中的最后一项 <mapping resource"org/hibernate/first/model/Student.hbm.xml"/>这个错误是因为&#xff1a;在配置hibernate缓存的时候出的错&#xff0c;我就把我这个缓存代码删除掉了。代码如下<pro…

kubernetes集群使用GPU及安装kubeflow1.0.RC操作步骤

kubernetes集群使用GPU及安装kubeflow1.0.RC操作步骤 Kubeflow使用场景 希望训练tensorflow模型且可以使用模型接口发布应用服务在k8s环境中(eg.local,prem,cloud) 希望使用Jupyter notebooks来调试代码&#xff0c;多用户的notebook server 在训练的Job中&#xff0c;需要对…

linux线程负载,linux 排查cpu负载过高异常(转载)

问&#xff1a;如何定位是哪个服务进程导致CPU过载&#xff0c;哪个线程导致CPU过载&#xff0c;哪段代码导致CPU过载&#xff1f;步骤一、找到最耗CPU的进程工具&#xff1a;top方法&#xff1a;执行top -c &#xff0c;显示进程运行信息列表键入P (大写p)&#xff0c;进程按照…

WIN10自带远程桌面实现多用户登录

一台主机当两台用&#xff0c;利用WIN10自带远程桌面实现多用户登录 2020-04-27 10:51:24 54点赞 311收藏 35评论 先来说说家里电脑和网络的基本情况。 新房装修时就考虑到家庭多媒体和自己变态的各种网络需求&#xff0c;所以全屋用企业级的网络设备组成了千兆网&#xff0…

PingingLab传世经典系列《CCNA完全配置宝典》-2.7 EIGRP基本配置

2.7 EIGRP基本配置实验目的&#xff1a;1、掌握EIGRP的基本配置。2&#xff0e;掌握EIGRP的邻居表、拓扑表、路由表。3&#xff0e;掌握EIGRP的无类特性。实验拓扑&#xff1a;实验步骤&#xff1a;1、依据图中拓扑配置各设备的IP地址&#xff0c;并保证直连连通性;在R1上做如下…

linux通过ip计算广播地址,子网掩码、网络地址、广播地址的计算

例如 192.168.1.53/27 如何计算出它的子网掩码、网络地址、广播地址、可用的主机数和最大可容纳主机数、可用的IP地址。子网掩码和主机数&#xff1a;192.168.1.53/27为例讲解&#xff0c;这就是平时说的&#xff23;类IP地址&#xff0c;平时大家用的是192.168.0.*或192.168.1…

KubeFlow安装指南

【摘要】 Kubeflow是Google推出的基于kubernetes环境下的机器学习组件&#xff0c;通过Kubeflow可以实现对TFJob等资源类型定义&#xff0c;可以像部署应用一样完成在TFJob分布式训练模型的过程。 组件 http://pachyderm.io/ http://www.argoproj.io/ Kubeflow使用场景 希望…

c#字符相似度对比通用类

本类适用于比较2个字符的相似度&#xff0c;代码如下&#xff1a; View Code using System;using System.Collections.Generic;using System.Text;public class StringCompute{#region 私有变量/// <summary>/// 字符串1/// </summary>private char[] _ArrChar1;/…

javascript数字格式化通用类——accounting.js使用

简介 accounting.js 是一个非常小的JavaScript方法库用于对数字&#xff0c;金额和货币进行格式化。并提供可选的Excel风格列渲染。它没有依赖任何JS框架。货币符号等可以按需求进行定制。 代码内容及下载地址 accounting.js代码如下&#xff1a; View Code /*!* accounting…

linux清除cpu,解决kswapd0 CPU占用率高的问题-清除病毒

连接服务器时发现cpu使用率100%&#xff0c;使用top命令查看是kswapd0进程占用cpu极高百度下后知道kswapd0进程的作用&#xff1a;它是虚拟内存管理中&#xff0c;负责换页的&#xff0c;操作系统每过一定时间就会唤醒kswapd &#xff0c;看看内存是否紧张&#xff0c;如果不紧…

Apache+Mysql+php+ZenTaoPMS安装配置文档

基于ApacheMysqlphpZenTaoPMS安装配置一、Apache安装配置tar zxvf httpd-2.2.23.tar.gzcd httpd-2.2.23mkdir –p /usr/local/app/apache2./configure --prefix/usr/local/app/apache2 --enable-so \--enable-maintainer-mode --enable-rewrite #添加后面的参数是为了解析s…

富编译器汇总及二次开发Demo

富文本编译器汇总 名称总大小当前版本官方地址扩展方法xhEditor1.43 MBv1.1.14http://xheditor.comhttp://xheditor.com/demos/demo09.htmlMarkitUp98.7 KBv1.1.13http://markitup.jaysalvat.com/home在set.js里设置开发。jwysiwyg1.52 MBv0.98https://github.com/akzhan/jwys…

docker安装nginx并配置SSL到个人博客

1 准备 1.已安装好docker环境 2.已申请好域名 2 申请SSL证书 我使用的是腾讯云&#xff0c;申请免费的TrustAsia的SSL证书&#xff0c;阿里云等或者其他平台一般都会提供TrustAsia的SSL证书的 填好域名等相关信息&#xff0c;一般一天就可以下载证书了 3 docker安装Nginx …

redhat linux 6.5 vnc,redhat 6.5 YUM安装kvm 并用VNC远程管理

安装完REDHAT&#xff0c;我们首先配置yum源先卸载系统原来的YUM包一、配置redhat yum源#rpm -aq|grep yum|xargs rpm -e --nodeps下载YUM源&#xff0c;我用的是&#xff11;&#xff16;&#xff13;的# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin…

用DOSBox运行老游戏

DOSBox0.74-3-win32-installer.exe下载地址&#xff1a; https://nchc.dl.sourceforge.net/project/dosbox/dosbox/0.74-3/DOSBox0.74-3-win32-installer.exe 金庸群侠传&#xff1a;https://dos.zczc.cz/games/%E9%87%91%E5%BA%B8%E7%BE%A4%E4%BE%A0%E4%BC%A0/download 新版本…

宿主机为linux、windows分别实现VMware三种方式上网(转)

一、VMware三种方式工作原理1 Host-only连接方式 让虚机具有与宿主机不同的各自独立IP地址&#xff0c;但与宿主机位于不同网段&#xff0c;同时为宿主主机新增一个IP地址&#xff0c;且保证该IP地址与各虚机IP地址位于同一网段。最终结果是新建了一个由所有虚机与宿主主机所构…