sql server 中的一些实用的sql语句

来源:互联网 发布:怎么看淘宝店铺的类目 编辑:程序博客网 时间:2024/05/21 05:56

sql server 中的一些重要sql语句

简介


http://www.zhongsisi.com/sql-server-in-some-useful-sql-statement/

在这篇文章中,我列举一些sql语句来介绍数据库,数据表,视图等等。当我们在使用查询查询操作时这些sql语句都是非常有用的。虽然在sql server对象浏览器中我们也可以获得这些语句,但是如果我们写这些语句时我们可以将它自定义。这就意味着我们可以给予自己的需求来过滤结果。

sql语句列表

如何列举sql server当前连接的可用数据库
?
Method 1 : SP_DATABASES
Method 2 : SELECTnameFROM SYS.DATABASES
Method 3 : SELECTnameFROM SYS.MASTER_FILES
Method 4 : SELECT*FROM SYS.MASTER_FILES-- Type=0 for .mdf and type=1 for .ldf

SP_DATABASES是一个可以列举数据库及其大小的存储过程

sys.databases语句中可以列举数据库名称,创建日期,修改日期,已经数据库id和其他一些信息。

SYS.MASTER_FILES语句可以查询数据的详细情况,比如数据库id,大小,物理存储路径以及列举数据库mdf和ldf.

如何列举数据库中的数据表

以下的sql语句都可以列表sql server数据库中的用户表.

?
Method 1 : SELECTnameFROM SYS.OBJECTS WHERE type='U'
Method 2 : SELECTNAMEFROM SYSOBJECTS WHERExtype='U'
Method 3 : SELECTnameFROM SYS.TABLES
Method 4 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='U'
Method 5 : SELECTtable_nameFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE='BASE TABLE'
Method 6 : SP_TABLES
如何列举数据库中的存储过程
?
Method 1 : SELECTnameFROM SYS.OBJECTS WHERE type='P'
Method 2 : SELECTnameFROM SYS.PROCEDURES
Method 3 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='P'
Method 4 : SELECTNAMEFROM SYSOBJECTS WHERExtype='P'
Method 5 : SELECTRoutine_nameFROMINFORMATION_SCHEMA.ROUTINESWHEREROUTINE_TYPE='PROCEDURE'

SYS.OBJECTS数据表包含了全部的存储过程,数据表,触发器,视图等的信息,这里使用type=’p'来查询存储过程.

Information_schema.routines在sql server 7.0是一个数据视图,在其后的版本中已经变成存储过程专有的表.

如何列举数据库中的视图
?
Method 1 : SELECTnameFROM SYS.OBJECTS WHERE type='V'
Method 2 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='V'
Method 3 : SELECTTABLE_NAMEFROM INFORMATION_SCHEMA.VIEWS
Method 4 : SELECTnameFROM SYS.VIEWS
如何列举数据库中的函数
?
Method 1 : SELECTnameFROM SYS.OBJECTS WHERE type='IF'-- inline function
Method 2 : SELECTnameFROM SYS.OBJECTS WHERE type='TF'-- table valued function
Method 3 : SELECTnameFROM SYS.OBJECTS WHERE type='FN'-- scalar function
Method 4 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='IF'-- inline function
Method 5 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='TF'-- table valued function
Method 6 : SELECTnameFROM SYS.ALL_OBJECTS WHERE type='FN'-- scalar function
Method 7 : SELECTRoutine_nameFROMINFORMATION_SCHEMA.ROUTINESWHEREROUTINE_TYPE='FUNCTION'
如何列举数据库中的触发器
?
Method 1 : SP_HELPTRIGGER Products
Method 2 : SELECT*FROM SYS.TRIGGERSWHERE parent_id = object_id('products')

下面我以一个products表为例列举一些对表的操作.

如何获取数据表中的列
?
Method 1 : SP_HELP Products
Method 2 : SP_COLUMNS Products
Method 3 : SELECT*FROM SYS.COLUMNS WHERE object_id = object_id('Products')
Method 4 : SELECTCOLUMN_NAME,Ordinal_position,Data_Type,character_maximum_lengthFROM                     INFORMATION_SCHEMA.COLUMNS WHERETABLE_NAME='Products'
如何根据数据表的列查找数据表的名称
?
Method 1 : SELECTO.nameFROM SYS.OBJECTS O INNERJOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.nameLIKE'%ShipName%'
Method 2 : SELECTOBJECT_NAME(object_id)AS[TableName] FROMSYS.COLUMNSWHEREnameLIKE '%ShipName%'
Method 3 : SELECTTABLE_NAMEFROM INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAMELIKE '%ShipName%'
如何获得数据表的总列数
?
Method 1 : SELECTCOUNT(@@ROWCOUNT)FROM Products
Method 2 : SELECTCOUNT(ProductID) FROM Products
Method 3 : SELECTOBJECT_NAME(id)AS[TableName],rowcnt FROMSYSINDEXESWHERE OBJECTPROPERTY(id,'isUserTable')=1ANDindid < 2 ORDER BY rowcnt DESC
Method 4 : SELECT rowcntFROM sysindexes WHERE id = OBJECT_ID('Products')AND indid < 2
Method 5 : SELECTOBJECT_NAME(OBJECT_ID) TableName,row_countFROMsys.dm_db_partition_statsWHEREobject_id = object_id('Products')AND index_id < 2
如何获得数据表的约束
?
Method 1 : SELECT*FROM SYS.OBJECTS WHERE type='C'
Method 2 : SELECT*FROM sys.check_constraints
如何获得数据表的索引
?
Method 1 : sp_helpindex Products
Method 2 : SELECT*FROM sys.indexes WHERE  object_id = object_id('products')
如何获得数据视图的模式定义
?
Method 1 :  SELECT OBJECT_NAME(id) AS [ViewName],textFROMSYSCOMMENTS WHEREid IN(SELECT object_idFROM SYS.VIEWS)
Method 2 : SELECT*FROM sys.all_sql_modulesWHERE object_id IN (SELECTobject_idFROM SYS.VIEWS)
Method 3 : SP_HELPTEXT ViewName
如何获得存储过程中的数据表
?
Method 1 : SELECTOBJECT_NAME(id)FROMSYSCOMMENTS S
                     INNERJOINSYS.OBJECTS O ON O.Object_Id = S.id
                    WHERES.textLIKE '%Products%'
                    ANDO.type='P'

总结

以上列举了一下sql server用实用的一些sql语句,希望对你在使用查询窗口操作时有用。


原创粉丝点击