1.查詢結果根據條件翻譯成其餘值sql
select SNAME,FENSHU=case when FENSHU>=90 then '優秀' when FENSHU>=80 then '良好'when FENSHU>=60 then '及格' else '不及格' end from S_STUDENT
select SNAME,FENSHU=case FENSHU when 90 then '優秀' when 80 then '良好' when 60 then '及格' else '不及格' end from S_STUDENT
2.sql 動態組合查詢條件 where 1=1 效率數據庫
通常不會影響效率,會自動優化優化
固然也可替換:ui
bool hasWhere = false; StringBuilder strSql = new StringBuilder(); strSql.Append("select * FROM dt_users_log "); if (txtUserID.Text.Trim() != string.Empty) { hasWhere = AppendWhere(strSql, hasWhere); strSql.Append("user_name=@user_id "); } if (DatePicker1.Text.Trim() != string.Empty && DatePicker2.Text.Trim() != string.Empty) { hasWhere = AppendWhere(strSql, hasWhere); strSql.Append("login_time between @start_time and @end_time "); } private bool AppendWhere(StringBuilder sb, bool hasWhere) { if (!hasWhere) { hasWhere = true; sb.Append("where "); return hasWhere; } else { hasWhere = false; sb.Append("and "); return hasWhere; } }
3.批量插入spa
declare @startTime datetime declare @idx int set @idx = 1 set @startTime = GETDATE() while @idx < 18 begin insert into TTest01(c1, c2, C3) select C1,C2,c3 from TTest01 set @idx = @idx + 1 end print datediff(ms, @startTime, GETDATE())
4.清理日誌 收縮mdf ldf 文件翻譯
sql server 200五、2008清理數據庫日誌代理
USE 數據庫名 ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE ALTER DATABASE 數據庫名 SET RECOVERY FULL DBCC SHRINKDATABASE(數據庫名,0)
這個查詢語句能夠隨時執行,不影響數據庫的運行。
清理ldf的操做能夠使用sql server代理,天天自動執行一次,就不怕文件增加撐爆硬盤了。
通常mdf用不着收縮,收縮多了容易產生文件碎片,由於delete數據以後,mdf文件中可用頁面空間會保留在那裏,等下次有新數據進來時,會繼續使用。若是實在要清理,能夠參考下面的語句:
sql server 2000、200五、2008 收縮mdf文件
DBCC SHRINKDATABASE(數據庫名) DBCC SHRINKFILE(1,0) DBCC UPDATEUSAGE(0)
執行上述操做後,你會發現mdf的文件減小了,ldf的文件增大了,再用上面1的日誌清理操做一次便可。