SQL中总有一些特殊的查询,例如获取一个表中的所有列字段或者是获得当前数据库的所有用户等,当遇到这类查询时,就看看下面吧,我都总结好了。

 

 
  
  1. --1:获取当前数据库中的所有用户表  
  2.  
  3. select name from sysobjects where xtype='u' and status>=0  
  4.  
  5. --查看当前数据库中是否包含某个表  
  6. select * from sysobjects where xtype='u' and status>=0 and name='student' 
  7.  
  8. --2:获取某一个表的所有字段  
  9.  
  10. select name from syscolumns where id=object_id('student')  
  11.  
  12. --3:查看与某一个表相关的视图、存储过程、函数  
  13.  
  14. select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%student%' 
  15.  
  16. --4:查看当前数据库中所有存储过程  
  17.  
  18. select name as 存储过程名称 from sysobjects where xtype='P' 
  19.  
  20. --5:查询用户创建的所有数据库  
  21.  
  22. select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')--这里不止列出了所创建的数据库,还列出了它们的具体信息  
  23.  
  24. select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01--这个只是列出了所创建数据库的名字  
  25.  
  26. --6:查询某一个表的字段和数据类型  
  27.  
  28. select column_name,data_type from information_schema.columns where table_name = 'student'   
  29.  
  30. --7:获取数据库文件路径  
  31.  
  32. select ltrim(rtrim(filename)) from stored..sysfiles where charindex('MDF',filename)>0--获取到mdf文件的路径  
  33.  
  34. select ltrim(rtrim(filename)) from stored..sysfiles where charindex('LDF',filename)>0--获取到ldf文件的路径  
  35.  
  36. sp_who--查看当前用户  
  37. sp_lock--可以查看授权