SQL Server 工作技巧

网络整理 - 08-18

   1、 isnull();函数

  在SQL Server 中经常会遇到一些字段为空值,这里可以使用isnull()这个函数来做判断;eg:

  select isnull(Table_column,'Test') as column from Table

  这个语句意思就是:从Table表中取字段Table_column,如果该字段值为空,则用“Test”字符来代替;

  2、sysobject

  SQL Server中有一个系统对象表 sysobject 这个表里存储了数据库中所有的对象,比如约束,默认值,日志,规则,存储过程,表名等等,详细可以查看帮助手册;

  select name from sysobject where Xtype='U'

  这语句就是讲数据库中所有的表名查出来;

  Xtype可以取值为以下:

  C = CHECK 约束

  D = 默认值或 DEFAULT 约束

  F = FOREIGN KEY 约束

  FN = 标量函数

  IF = 内嵌表函数

  K = PRIMARY KEY 或 UNIQUE 约束

  L = 日志

  P = 存储过程

  R = 规则

  RF = 复制筛选存储过程

  S = 系统表

  TF = 表函数

  TR = 触发器

  U = 用户表

  V = 视图

  X = 扩展存储过程

  AF = 聚合函数 (CLR)

  FS = 程序集 (CLR) 标量函数

  FT = 程序集 (CLR) 表值函数

  IF = 内联表函数

  IT = 内部表

  PC = 程序集 (CLR) 存储过程

  PK = PRIMARY KEY 约束(type 为 K)

  SN = 同义词

  SQ = 服务队列

  TA = 程序集 (CLR) DML 触发器

  TT = 表类型

  UQ = UNIQUE 约束(type 为 K)

  3、SQL Server 2008工具使用;

  新建立一个数据库表时,当建立好了,但又要修改,有时候DB会阻止对表结构的修改,需要设置如下:

  SQLServer----"tool"----"option"----"Designers"----"prevent saving changes that require table recreating" 去掉这个“阻止修改”选项;

  4、nvarchar(Max)

  SQL Server 中Max是最大值,其定义是4000,nvarchar(Max) 其实就是nvarchar(4000);

  5、select * from table

  在数据库中,一般小数据量的select * from table 不会发觉有什么慢,但是一旦到了大数据量的数据库中,这种查询是最慢的最耗时间的!数据库的开销会很大!

  所以不要轻易的在大数据表上执行不带条件的select cout(*) from table,不仅耗时大,而且会把这个数据库表上S锁,在cout(*)期间,任何有关和该表的insert update delete都会被阻止!!!

  6、getdate()

  getdate()函数用于获得当前系统的系统时间这个精确到了毫秒:eg:"2013-12-12 12:23:33:321"

  7、newid()

  这个不用多说了,做主键ID时最常用了,此函数可以生成一个唯一的guid,32位长,这个强度大,而且由数据库系统生成,具有唯一性!