首页 > 数据库 >SQL语句获取数据库中的表主键,自增列,所有列

SQL语句获取数据库中的表主键,自增列,所有列

时间:2023-09-20 12:02:31浏览次数:48  
标签:join name 表名 主键 SQL colid 增列 id SELECT

获取表主键

1 : SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME <> ' dtproperties '
2 : EXEC sp_pkeys @table_name = ' 表名 '
3 :

select o.name as 表名,c.name as 字段名,k.colid as 字段序号,k.keyno as 索引顺序,t.name as 类型

from sysindexes i
join sysindexkeys k on i.id = k.id and i.indid = k.indid
join sysobjects o on i.id = o.id
join syscolumns c on i.id = c.id and k.colid = c.colid
join systypes t on c.xusertype = t.xusertype
where o.xtype = ' U ' and o.name = ' 要查询的表名 '
and exists ( select 1 from sysobjects where xtype = ' PK ' and parent_obj = i.id and name = i.name)
order by o.name,k.colid

获取所有

SELECT
表名 = case when a.colorder = 1 then d.name else '' end ,
字段名 = a.name,
标识 = case when COLUMNPROPERTY (a.id,a.name, ' IsIdentity ' ) = 1 then ' √ ' else '' end ,
主键 = case when exists ( SELECT 1 FROM sysobjects where xtype = ' PK ' and name in (
SELECT name FROM sysindexes WHERE indid in (
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid = a.colid
))) then ' √ ' else '' end ,
类型 = b.name,
占用字节数 = a.length,
长度 = COLUMNPROPERTY (a.id,a.name, ' PRECISION ' ),
小数位数 = isnull ( COLUMNPROPERTY (a.id,a.name, ' Scale ' ), 0 ),
允许空 = case when a.isnullable = 1 then ' √ ' else '' end ,
默认值 = isnull (e. text , '' ),
字段说明 = isnull (g. [ value ] , '' )
FROM syscolumns a
left join systypes b on a.xtype = b.xusertype
inner join sysobjects d on a.id = d.id and d.xtype = ' U ' and d.name <> ' dtproperties ' and d.name = ' 要查询的表名 '
left join syscomments e on a.cdefault = e.id
left join sys.extended_properties g on a.id = g.major_id and a.colid = g.minor_id and g.name = ' MS_Description '
order by a.id,a.colorder

获取表自增列名称

SELECT COLUMN_NAME as 标识 FROM INFORMATION_SCHEMA.columns 
WHERE TABLE_NAME = ' 表名 ' AND COLUMNPROPERTY ( OBJECT_ID ( ' 表名 ' ),COLUMN_NAME, ' IsIdentity ' ) = 1
SELECT 标识 = case when COLUMNPROPERTY ( a.id,a.name, ' IsIdentity ' ) = 1 then a.name else ' NULL ' end
FROM syscolumns a
inner join sysobjects d on a.id = d.id and d.xtype = ' U ' and d.name <> ' dtproperties '
where d.name = ' TestType ' order by a.id,a.colorder

获取字段默认值

select b. text as 字段默认值
from syscolumns a left join syscomments b on a.cdefault = b.id
where a.id = object_id ( ' 表名 ' ) and a.name = ' 字段名称 '

移植表: SELECT * INTO 库2.dbo.表2 FROM 库1.dbo.表1


标签:join,name,表名,主键,SQL,colid,增列,id,SELECT
From: https://blog.51cto.com/u_16255870/7535856

相关文章

  • 测试常用SQL查询语句
    一、查询数值型数据:SELECT*FROMtb_nameWHEREsum>100;查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二、查询字符串SELECT*FROMtb_stuWHEREsname=‘小刘’SELECT*FROMtb_stuWHEREsnamelike‘刘%’SELECT*FROMtb_stuWHEREsnamelike‘%程序员’SELECT*FROMt......
  • 功能强大的PostgreSQL没有MySQL流行的10个原因
    以下内容是根据玖章算术CEO叶正盛在「3306π数据库朋友圈」技术演讲整理。文末附完整的PPT下载链接!MySQL与PostgreSQL都是非常优秀并且非常成功的数据库,PostgreSQL的功能比MySQL强大,但是依然没有MySQL流行,作者从产品功能、技术架构、生态、品牌商业几方面来分析原因。影响......
  • mysql数据库数据的基本查询操作
    基本查询语句:select[all|distinct]字段或表达式列表[from子句][where子句][groupby子句][having子句][orderby子句][limit子句];表达式列表中的条件语句顺序不能乱,from:数据来源,表示数据来源于哪张表,例句:select*fromstudent(student是表名);where:条件字句,可连接运算符,结......
  • MySQL篇:第九章_详解流程控制结构
    流程控制结构系统变量一、全局变量作用域:针对于所有会话(连接)有效,但不能跨重启查看所有全局变量SHOWGLOBALVARIABLES;查看满足条件的部分系统变量SHOWGLOBALVARIABLESLIKE'%char%';查看指定的系统变量的值SELECT@@global.autocommit;为某个系统变量赋值SET@@glo......
  • 【Python】pymysql 连接mysql数据库, 执行数据库语句
    1.数据库设置importpymysql#数据库连接配置DB_HOST='127.0.0.1'#ipDB_PORT=3306#端口DB_USER='root'#用户名DB_PASSWD='root'#密码DB_DATABASE='db_1'#数据库名称2.数据库连接#连接数据库conn=pymysql.connect(host=DB_HOS......
  • MySQL常规优化操作
    查询SQL语句执行频率查询mysql服务启动时长SHOWSTATUSLIKE'uptime';下列输出表示服务启动了276324秒+---------------+--------+|Variable_name|Value|+---------------+--------+|Uptime|276324|+---------------+--------+查询全局SQL执行的频......
  • MySQL高级11-后台进程
    一、前言MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。MySQL常用的后台线程概括如下,分为MasterThread,IOThread,PurgeThread,PageCleanerThread二、MasterThread在MySQL......
  • Vue+Node连接MySql搭建项目
    https://haoying.blog.csdn.net/article/details/123660641?spm=1001.2014.3001.5506https://www.jb51.net/article/277499.htm ......
  • MSSQL 维护小记(清理进程、重建索引)
    ------------------------------清理进程----------------------------------- declare@deleteSleepSessionnvarchar(100)--申明一个变量declaretablelistcursorlocal--申明一个本地游标forselect'kill'+rtrim(spid)frommaster.dbo.sysprocesses--数据库系统进......
  • mysql数据脱敏
    MySQL数据脱敏是一种技术手段,用于将敏感数据转换为非敏感形式,以保护数据隐私和安全。以下是一些常见的MySQL数据脱敏方法:替换:将敏感数据中的特定字段或字符串替换为非敏感的字符串。例如,将姓名中的姓氏和/或名字替换为星号(*)。扰动:在敏感数据中添加噪声或扰动,使其难以识别。这种方......