SQL Server数据库中常用的sql语句有哪些?


  本文标签:SQL Server数据库

  此文主要向大家讲述的是SQL Server数据库中的一些经常使用的sql语句的描述,在此篇文章里,我列举一些常用的sql语句来对数据库,数据表,视图等等进行介绍  。当我们在使用查询查询操作时这些sql语句都是非常有用的  。

  虽然在SQL Server对象浏览器中我们也可以获得这些语句,但是如果我们写这些语句时我们可以将它

  

  简介

  

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

  

  sql语句列表

  如何列举SQL Server数据库当前连接的可用数据库

  

  

  1. Method 1 : SP_DATABASES   
  2. Method 2 : SELECT name FROM SYS.DATABASES   
  3. Method 3 : SELECT name FROM SYS.MASTER_FILES   
  4. 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数据库中的用户表.

  1. Method 1 : SELECT name FROM SYS.OBJECTS WHERE type=U   
  2. Method 2 : SELECT NAME FROM SYSOBJECTS WHERE xtype=U   
  3. Method 3 : SELECT name FROM SYS.TABLES   
  4. Method 4 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=U   
  5. Method 5 : SELECT table_name FROM INFORMATION_SCHEMA.  
  6. TABLES WHERE TABLE_TYPE=BASE TABLE   
  7. Method 6 : SP_TABLES   

  如何列举数据库中的存储过程

  1. Method 1 : SELECT name FROM SYS.OBJECTS WHERE type=P   
  2. Method 2 : SELECT name FROM SYS.PROCEDURES   
  3. Method 3 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=P   
  4. Method 4 : SELECT NAME FROM SYSOBJECTS WHERE xtype=P   
  5. Method 5 : SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=PROCEDURE  

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

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

  如何列举数据库中的视图

  1. Method 1 : SELECT name FROM SYS.OBJECTS WHERE type=V   
  2. Method 2 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=V   
  3. Method 3 : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS   
  4. Method 4 : SELECT name FROM SYS.VIEWS  

  如何列举数据库中的函数

  

  1. Method 1 : SELECT name FROM SYS.OBJECTS WHERE type=IF -- inline function   
  2. Method 2 : SELECT name FROM SYS.OBJECTS WHERE type=TF -- table valued function   
  3. Method 3 : SELECT name FROM SYS.OBJECTS WHERE type=FN -- scalar function   
  4. Method 4 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=IF -- inline function   
  5. Method 5 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=TF -- table valued function   
  6. Method 6 : SELECT name FROM SYS.ALL_OBJECTS WHERE type=FN -- scalar function   
  7. Method 7 : SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE=FUNCTION  

  如何列举数据库中的触发器

  

  1. Method 1 : SP_HELPTRIGGER Products   
  2. Method 2 : SELECT * FROM SYS.TRIGGERS WHERE parent_id = object_id(products)  

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

  

  如何获取数据表中的列

  1. Method 1 : SP_HELP Products   
  2. Method 2 : SP_COLUMNS Products   
  3. Method 3 : SELECT * FROM SYS.COLUMNS WHERE object_idobject_id = object_id(Products)   
  4. Method 4 : SELECT COLUMN_NAME,Ordinal_position,Data_Type,  
  5. character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=Products   

  如何根据数据表的列查找数据表的名称

  

  1. Method 1 : SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.name LIKE %ShipName%   
  2. Method 2 : SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.COLUMNS WHERE name LIKE %ShipName%   
  3. Method 3 : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE %ShipName%  

  如何获得数据表的总列数

  

  1. Method 1 : SELECT COUNT(@@ROWCOUNT) FROM Products   
  2. Method 2 : SELECT COUNT (ProductID) FROM Products   
  3. Method 3 : SELECT OBJECT_NAME(id) AS [Table Name],rowcnt FROM SYSINDEXES   
  4. WHERE OBJECTPROPERTY(id,isUserTable)=1 AND indid < 2 ORDER BY rowcnt DESC   
  5. Method 4 : SELECT rowcnt FROM sysindexes WHERE id = OBJECT_ID(Products) AND indid < 2   
  6. Method 5 : SELECT OBJECT_NAME(OBJECT_ID) TableName,  
  7. row_count FROM sys.dm_db_partition_stats WHERE object_idobject_id = object_id(Products) AND index_id < 2   

  如何获得数据表的约束

  

  1. Method 1 : SELECT * FROM SYS.OBJECTS WHERE type=C   
  2. Method 2 : SELECT * FROM sys.check_constraints  

  如何获得数据表的索引

  

  1. Method 1 : sp_helpindex Products   
  2. Method 2 : SELECT * FROM sys.indexes WHERE object_idobject_id = object_id(products)  

  如何获得数据视图的模式定义

  

  1. Method 1 : SELECT OBJECT_NAME(id) AS [View Name],text FROM SYSCOMMENTS WHERE id IN (SELECT object_id FROM SYS.VIEWS)   
  2. Method 2 : SELECT * FROM sys.all_sql_modules WHERE object_id IN (SELECT object_id FROM SYS.VIEWS)   
  3. Method 3 : SP_HELPTEXT ViewName  

  如何获得存储过程中的数据表

  1. Method 1 : SELECT OBJECT_NAME(id) FROM SYSCOMMENTS S   
  2. INNER JOIN SYS.OBJECTS O ON O.Object_Id = S.id   
  3. WHERE S.text LIKE %Products%   
  4. AND O.type=P  

  总结

  

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