目前工作中遇到一個情況,需要將SQL Server中的一個欄位提取拼音的首字母,欄位由漢字、英文、數字以及“-”構成,百度了一堆,找到如下方法,記錄一下,以備後用! 首先建立一個函數--產生拼音首碼 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @intLen int
異常處理被普遍認為是T-SQL指令碼編程中的最弱的方面。幸運的是,這一點在SQL Server 2005中得到了改變,因為SQL Server 2005支援結構化異常處理。本文首先關注新特性“TRY……CATCH”的基本構成,然後在SQL Server 2000和SQL Server 2005中對照著看一些T-SQL的例子,這些例子中使用事務代碼故意製造了一些違反約束限制的情況。將來的文章會繼續探討這一主題。 在SQL
rand() 定義: 返回從0到1之間的隨機浮點值。舉例說明:select rand() as 隨機數 結果select cast( floor(rand()*N) as int ) --方法1結果:47select cast( celing(rand()*N) as int ) --方法2結果:47大致一看,這兩種方法沒什麼區別,區別就是他們的產生隨機數的範圍:方法1的數字範圍:0至N-1之間,如cast( floor(rand()*100) as
前面我們說了一下,預存程序和視圖,下面我們來簡單的瞭解下資料庫中 while ,case ,if ..else 這幾個對象1 whilewhile 是根據它接到bool值是true還是false 來執行重複操作的一個命令對象。文法:while 條件begin.....end樣本DECLARE @start INTset @start=1WHILE @start<=10BEGIN PRINT @start SET @start=@start+1END2 case case
1 判斷資料庫是否存在if exists (select * from sys.databases where name = '資料庫名') drop database [資料庫名] 2 判斷表是否存在if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] 3
今天在做一個報表,粗一看是沒注意,仔細一看,原來是要統計Sql Server裡一個銷售明細表裡某個時間段的銷售額,而且要按周進行比較,腦子裡一下子沒了思路,心想總不見得兜個迴圈進行計算吧,查了一下資料,發現原來短短的一句sql語句就可以實現,看來sql server的基本功還是不紮實啊。以下是該語句的寫法:select sum(銷售金額), datename(week, 銷售日期-1) from sales where 銷售日期 betwee begindate and enddate
1. How to get the id of current inserted record?using @@identity keyword. E.G.create table table1 (id int identity(1,1) not null, name nvarchar(64))goinsert into table1('Hello world')goselect @@identity2. How to cleanup SQL server plan cache?DBCC