sql获取表结构

SELECT a.name 字段名,
            (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then 1 ELSE 0 end) 标识,
            (case when (SELECT count(*) FROM dbo.sysobjects
            WHERE (name in (SELECT name FROM dbo.sysindexes
            WHERE (id = a.id) AND (indid in
            (SELECT indid FROM dbo.sysindexkeys
            WHERE (id = a.id) AND (colid in
            (SELECT colid FROM dbo.syscolumns WHERE (id = a.id) AND (name = a.name)))))))
            AND (xtype = ‘PK‘))>0 then 1 else 0 end) 主键,b.name 类型,
            h.CHARACTER_MAXIMUM_LENGTH as 长度,h.NUMERIC_PRECISION as 数字长度,
            isnull(h.NUMERIC_SCALE,0) as 小数位数,(case when a.isnullable=1 then 1 ELSE 0 end) 允许空,
            isnull(e.text,‘‘) 默认值,isnull(g.[value], ‘ ‘) AS [说明]
            FROM  dbo.syscolumns a
            left join dbo.systypes b on a.xtype=b.xusertype
            inner join dbo.sysobjects d on a.id=d.id and d.xtype=‘U‘ and d.name<>‘dtproperties‘
            left join dbo.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
            left join sys.extended_properties f on d.id=f.class and f.minor_id=0
            LEFT JOIN information_schema.COLUMNS h ON h.TABLE_NAME = d.name AND h.COLUMN_NAME = a.name
            --where b.name is not null
            WHERE d.name=‘StockInfo‘ --如果只查询指定表,加上此条件
            order by a.id,a.colorder

原文地址:https://www.cnblogs.com/zhuangke668/p/9469592.html

时间: 2024-10-10 09:23:50

sql获取表结构的相关文章

SQL Server2008中通过SQL获取表结构

SQL Server2008中通过SQL获取表结构 新增数据用户,角色为public.映射到待获取表结构的数据库上,授与用户在该数据库上的身份为db_owner 运行例如以下SQL语句: select syscolumns.name as [Name] , systypes.name as [Type], syscolumns.length AS [Size], syscolumns.xprec As [Precision], ISNULL(syscolumns.scale, 0) AS [Sc

每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条

实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (startSignup<GETDATE() and  endsignUp>=getdate()) then '正在报名'  when (StartDate<GETDATE() and EndDate>=GETDATE())or (StartDate<GETDATE() and EndDa

SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释

SQLServer 2005 SELECT d.name N'TableName', d.xtype N'TableType', a.colorder N'ColumnIndex', a.name N'ColumnName', (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '1'else '0' end) N'IdnetityFG', (case when (SELECT count(*) FROM sysobjects

Oracle获取表结构信息:表名、是否视图、字段名、类型、长度、非空、主键

select a.TABLE_NAME as "TableName", case when (select count(*) from user_views v where v.VIEW_NAME =a.TABLE_NAME )>0 then 'V' else 'U'end as "TableType", a.COLUMN_NAME as "ColumnName", A.COLUMN_ID as "ColumnIndex"

SQL数据库表结构的修改(sql2005)

一 .ALTER TABLE命令 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. 二.添加列 语法 :ALTER TABLE table_name ADD column_name datatype eg: ALTER TABLE Persons ADD P_Names VACHAR(50) NOT NULL 三.修改列 3.1修改字段varchar(50)为datetime,允许空eg:  ALTER TABLE Persons ALTER COLUMN  P_Names da

7.使用EXPLAIN 来分析SQL和表结构_1

explain:查看执行计划 使用explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈 使用explain 可以获取哪些信息: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 explain + sql语句 执行计划包含的信息: 1.id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 2.select_

SqlServer获取表结构语句

--sql server 2005-- 1. 表结构信息查询 -- ========================================================================-- 表结构信息查询-- 邹建 2005.08(引用请保留此信息)-- ========================================================================SELECT TableName=CASE WHEN C.column_

SQL复制表结构或表数据

需求: 软件开发过程中,一般会部署两个数据库:一个测试数据库提供给开发和测试过程使用:一个运维数据库提供上线使用.当需求变化需增加表时,会遇到数据库表结构或表数据同步的问题,这时就要复制表结构或表数据. 两种情形: 一.两个数据库部署在同一服务器上: 从数据库A复制到B: 复制表结构和数据:select * into  数据库B.dbo.Department from 数据库A.dbo.Department 只复制表结构:  select * into  数据库B.dbo.Department

SQL复制表结构和数据

1.复制表结构和数据 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.infoMianTest from infoMian 2.复制表的一部分列(非*) select 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名 select id,title,mtype,stype,author,tel,nr into infoMianTest2 from infomian 3备份表的