sql server 中的一些实用的sql语句
简介
在这篇文章中,我列举一些sql语句来介绍数据库,数据表,视图等等。当我们在使用查询查询操作时这些sql语句都是非常有用的。虽然在sql server对象浏览器中我们也可以获得这些语句,但是如果我们写这些语句时我们可以将它自定义。这就意味着我们可以给予自己的需求来过滤结果。
sql语句列表
如何列举sql server当前连接的可用数据库
Method 1 : SP_DATABASES
Method 2 : SELECT name from SYS.DATABASES
Method 3 : SELECT name from 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 : SELECT name from SYS.OBJECTS WHERE type='U'
Method 2 : SELECT NAME from SYSOBJECTS WHERE xtype='U'
Method 3 : SELECT name from SYS.TABLES
Method 4 : SELECT name from SYS.ALL_OBJECTS WHERE type='U'
Method 5 : SELECT table_name from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Method 6 : SP_TABLES
如何列举数据库中的存储过程
Method 1 : SELECT name from SYS.OBJECTS WHERE type='P'
Method 2 : SELECT name from SYS.PROCEDURES
Method 3 : SELECT name from SYS.ALL_OBJECTS WHERE type='P'
Method 4 : SELECT NAME from SYSOBJECTS WHERE xtype='P'
Method 5 : SELECT Routine_name from INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE'
SYS.OBJECTS数据表包含了全部的存储过程,数据表,触发器,视图等的信息,这里使用type=’p'来查询存储过程.
Information_schema.routines在sql server 7.0是一个数据视图,在其后的版本中已经变成存储过程专有的表.
如何列举数据库中的视图
Method 1 : SELECT name from SYS.OBJECTS WHERE type='V'
Method 2 : SELECT name from SYS.ALL_OBJECTS WHERE type='V' 
相关文档:
from: http://blog.163.com/ck275601774/blog/static/1230468012009631113559291/
--日期转换参数
select CONVERT(varchar,getdate(),120)
--2009-03-15 15:10:02
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
--20090315151201
select CONVERT(varchar(12) , getdate ......
1.说明:复制表(只复制结构,源表名:a 新表名:b)
SQL: select * into b from a where 11
2.说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
SQL: insert into b(a, b, c) select d,e,f from a;
3.说明:显示文章、提交人和最后回复时间
SQL: select a.title,a.username,b.adddate from table a,(select max(adddat ......
在分组排序过程中需要新建排序列,按条件:(物料分类+客户名称) 进行分组汇总 然后就根据该条件进行排序
1.需要拼凑两列 作为排序列,如需加入特殊字符.就会报错.
因为本身改字段就是varchar类型 需要将char类型'_' 转换成varchar
2.拼凑过程中有空格需要去空格
e.g:select (trim(物料分类)+to_char( ......
if exists(select 1 from sysobjects where name='char_index')
drop function char_index
create function char_index(@string varchar(8000),@char varchar(10),@index smallint)
--@string:待查找字符串,@index:查找位置
returns smallint
as
begin
declare
@i tinyint,--当前找到第@i个
  ......