SQL SERVER 的 INFORMATION_SCHEMA 的使用

-------------------------------------------------------
第一个查询看看库里有多少个表,表名等

select * from INFORMATION_SCHEMA.TABLES;
-------------------------------------------------------
第二个查询搜索详细
 SELECT
 (case when a.colorder=1 then d.name else ‘‘ end) as 表名,--如果表名相同就返回空
     a.colorder as 字段序号,
     a.name as 字段名,
     (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end) as 标识,
     (case when (SELECT count(*) FROM sysobjects--查询主键
                     WHERE (name in
                             (SELECT name FROM sysindexes
                             WHERE (id = a.id)  AND (indid in
                                     (SELECT indid FROM sysindexkeys
                                       WHERE (id = a.id) AND (colid in
                                         (SELECT colid FROM syscolumns
                                         WHERE (id = a.id) AND (name = a.name))
                         )))))
         AND (xtype = ‘PK‘))>0 then ‘√‘ else ‘‘ end) as 主键,--查询主键END
 b.name as 类型,
 a.length as 占用字节数,
 COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as  长度,
 isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0) as 小数位数,
 (case when a.isnullable=1 then ‘√‘else ‘‘ end) as 允许空,
 isnull(e.text,‘‘) as 默认值,
 isnull(g.[value],‘‘) AS 字段说明
 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‘
 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
 order by a.id,a.colorder
时间: 2024-10-08 15:50:32

SQL SERVER 的 INFORMATION_SCHEMA 的使用的相关文章

代码生成器Sql Server 和 Mysql 数据库脚本

#SQL SERVER        private string SqlTableList = @"SELECT                                                     so.name,                                                    Convert( VARCHAR(10), ep.[value]) AS [description]                              

SQL Server 索引和视图

索引 1. 什么是索引 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度. 2. 索引分类 数据库中索引主要分为两类:聚集索引和非聚集索引.SQL Server 2005还提供了唯一索引.索引视图.全文索引.xml索引等等.聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解其他类型索引的基础. # 聚集索引 聚集索引是值表中数据行的物理存储顺序和索引的存储顺序完全相同.聚集索引根据索引顺序物理地重新排列了用户插入到表中的数据,因此,每个表只能创建一个

SQL SERVER几种数据迁移/导出导入的实践

SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel.数据库与文本文件.数据库与数据库之间的导出导入). (一)数据库与Excel 方法1: 使用数据库客户端(SSMS)的界面工具.右键选择要导出数据的数据库,选择“任务”——“导出数据”,下图1,按照向导一步一步操作即可.而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等.当然在可以在向导进行修改.需要注意的是如果标题不是

Sql Server中的标识列(自增长字段)

一.标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点: 1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列. 由于以上特点,使得标识列在数据库的设计中得到广泛的使用. 二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:de

Sql Server语句大全

T-SQL语句大全 --跳转到SQL myDemo USE [SQL myDemo] go --声明变量id declare @id int --为变量赋值:直接赋值 set @id = 2 --将cid为3的cname值赋给变量@cn declare @cn varchar(10) --为变量赋值:查询赋值 select @cn = cname from classes where Cid = @id --输出[print:可直接输出'字符串'或变量]变量@cn if{} ===>if beg

列出 sql server某个数据库的角色 及 表名

-- USE YOUR DB NAME select QUOTENAME(SCHEMA_NAME(SCHEMA_ID)) + '.' + QUOTENAME(NAME) FROM SYS.TABLES select '[' + schema_name(schema_id) + '].[' + name + ']' from sys.tables SELECT '[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']' FROM INFORMATION_SCHEMA

SQL Server查看表结构及视图,适合开发者使用,简单易用

SELECT * FROM INFORMATION_SCHEMA.TABLES SELECT * FROM INFORMATION_SCHEMA.COLUMNS 查看执行结果 SQL Server查看表结构及视图,适合开发者使用,简单易用,布布扣,bubuko.com

获取创建SQL Server对象的定义文本

引用自<SQL Server 2012 Internals> "   As views, these metadata objects are based on an underlying Transact-SQL (T-SQL) defnition. The most straightforward way to see the defnition of these views is by using the object_defnition function. (You can

SQL SERVER 2005/2008 中关于架构的理解(二)

本文上接SQL SERVER 2005/2008 中关于架构的理解(一)      架构的作用与示例 用户与架构(schema)分开,让数据库内各对象不再绑在某个用户账号上,可以解决SQL SERVER 2000及以前版本中“用户离开公司"问题,也就是在拥有该对象的用户离开公司,或离开该职务时,不必要大费周章地更改该用户所有的对象属于新的用户所有.另外,也可让 DBA 在安装某个套装软件时,设置该套装软件所用的数据库对象都属于某个特定的架构,容易区别.也就是说,在单一数据库内,不同部门或目的的对