萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQL Server 工作技巧

SQL Server 工作技巧

   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位長,這個強度大,而且由數據庫系統生成,具有唯一性!

copyright © 萬盛學電腦網 all rights reserved