获取sqlserver数据字典的完整sql

SELECT
sysobjects.name AS 表名称 , --------------as 的作用:为字段起一个别名
--sysproperties.[value] AS 表说明 , ----------[ ]方括号的作用:为了避免和关键字冲突
syscolumns.name AS 字段名称 ,
--properties.[value] AS 字段说明 ,
systypes.name AS 字段类型 ,
syscolumns.length AS 字段长度 ,
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name,‘Scale‘), 0) AS 小数位数 ,
--isnull---(待测数据,返回值).当待测数据为空时返回返回值,当大策数据为非null时,反回待测数据
CASE WHEN syscolumns.isnullable=0
THEN ‘‘
ELSE ‘ √ ‘
END AS 是否为空 ,
CASE WHEN syscomments.text IS NULL
THEN ‘‘ ELSE syscomments.text
END AS 缺省值 ,
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, ‘IsIdentity‘)= 1
THEN ‘ √ ‘ ELSE ‘‘
END AS 递增字段 ,
CASE WHEN sysindexes.name IS NULL
THEN ‘‘
ELSE sysindexes.name
END AS 索引名称 ,
CASE WHEN sysindexkeys.keyno IS NULL
THEN ‘‘
ELSE CONVERT(VARCHAR(10),sysindexkeys.keyno )
END AS 索引位置 ,
CASE WHEN sysindexes.indid=1
THEN ‘ 聚集索引 ‘
WHEN sysindexes.indid>1 AND sysindexes.indid<>255
THEN ‘ 非聚集索引 ‘
WHEN sysindexes.indid IS NULL
THEN ‘‘
ELSE
‘ 其他 ‘
END AS 索引类型 ,
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 = syscolumns.id AND colid = syscolumns.colid)))
THEN ‘ √ ‘ ELSE ‘‘
END AS 主键 ,
CASE WHEN sysforeignkeys.constid IS NULL
THEN ‘‘
ELSE ‘ √ ‘
END AS 外健
FROM syscolumns -- 数据表字段
INNER JOIN sysobjects -- 数据对象
ON sysobjects.id = syscolumns.id
INNER JOIN systypes -- 数据类型
ON syscolumns.xtype = systypes.xtype

LEFT OUTER JOIN syscomments -- 注释信息
ON syscolumns.cdefault = syscomments.id
LEFT OUTER JOIN sysindexkeys -- 索引中的键或列的信息
ON sysindexkeys.id = syscolumns.id
AND sysindexkeys.colid = syscolumns.colid
LEFT OUTER JOIN sysindexes -- 数据库 索引表
ON sysindexes.id = sysindexkeys.id
AND sysindexes.indid = sysindexkeys.indid
LEFT OUTER JOIN sysforeignkeys
ON sysforeignkeys.fkeyid = syscolumns.id
AND sysforeignkeys.fkey = syscolumns.colid
WHERE (sysobjects.xtype = ‘U‘)
order by sysobjects.id,syscolumns.colid

时间: 2024-10-05 10:28:06

获取sqlserver数据字典的完整sql的相关文章

获取SQLServer的最完整数据字典的SQL语句

获取SQLServer 的最完整数据字典 以下代码在Microsoft SQL Server 2013中执行通过 SELECT sysobjects.name AS 表名称 , --sys.extended_properties.[value] AS 表说明 , syscolumns.name AS 字段名称 , --properties.[value] AS 字段说明 , systypes.name AS 字段类型 , syscolumns.length AS 字段长度 , ISNULL(CO

获取sqlserver安装路径 得到SQL中的各种目录

1.select filename from master..sysfiles 2.master..xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath' --得到SQL中的各种目录declare @path varchar(8000) --得到当前数据库的数据文件路径select @path=rtrim(reverse(filename)) from sysfi

MyBatis拦截器打印不带问号的完整sql语句方法

? 1 /* Preparing: SELECT * FROM tb_user WHERE id = ? AND user_name = ?  <br>   目标是打印:SELECT * FROM tb_user WHERE id = 1000059081 AND user_name = '积极'<br>*/ 这部分代码只是拦截了查询和更新,如果想对其他语句进行拦截,在@Intercepts中添加对应方法即可 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1

使用聚合接口获取汉字数据字典

原文:使用聚合接口获取汉字数据字典 如何获取全部汉字及汉字的详细信息? 刚刚扒了一通汉字完整的数据字典,mark作下记录. 所有汉字集合 我们匹配中文字符时,经常使用Unicode字符"[^\u4e00-\u9fa5]"正则表达式来校验. 详细的汉字字符集列表可参考: 具体的汉字对应的字符,可查询汉字字符集编码查询网站 基本汉字中从4e00到9fa5,十六进制转化为十进制后,可知共有20902个汉字. 汉字的集合,是开源的,可以直接从网上获取. 百度文库-中国汉字大全 Github-H

SqlServer教程:经典SQL语句集锦

SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server --- 创建 备份数据的 deviceUSE

log4jdbc打印完整SQL

一.log4jdbc简单介绍: log4jdbc是工作在jdbc层的一个日志框架,能够记录SQL及数据库连接执行信息. 一般的SQL日志会把占位符和参数值分开打印,log4jdbc则会记录数据库执行的完整SQL字符串,在数据库应用开发调试阶段非常有用. log4jdbc具有以下特性: 支持JDBC3和JDBC4. 支持现有大部分JDBC驱动. 易于配置(在大部分情况下,只需要改变驱动类名和jdbc的URL,设置好日志输出级别). 能够自动把SQL变量值加到SQL输出日志中,改进易读性和方便调试.

完整SQL分页存储过程(支持多表联接)

http://www.cnblogs.com/andiki/archive/2009/03/24/1420289.html Code/********************************************************* * 作 用:数据分页(完整SQL分页存储过程(支持多表联接))* 作 者:齐李平* 创建日期:2009-03-23* 使用说明: 1.单表调用方法:EXEC proc_DataPagination @tblName = 'ipa',@fldName

hibernate4中oracle,sqlserver,mysql数据库的sql方言配置(SQL Dialects)

hibernate4中oracle,mysql,sqlserver数据库的sql方言配置(SQL Dialects) 数据库类型 Hibernate sql方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL 8.1 org.hibernate.dialect.Po

查询SQLSERVER执行过的SQL记录

原文:查询SQLSERVER执行过的SQL记录 有的时候,需要知道SQLSERVER执行了什么语句,可以用下面的方法: SELECT TOP 1000 --创建时间 QS.creation_time, --查询语句 SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE QS.statement_end_offse