建立一個查詢,執行下面的語句產生函數fn_GetPy 複製代碼 代碼如下: --產生拼音首碼 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @intLen int declare @strRet nvarchar(4000) declare @temp nvarchar(100) set @intLen = len(@str) set
但是用IN的SQL效能總是比較低的,從SQL執行的步驟來分析用IN的SQL與不用IN的SQL有以下區別: SQL試圖將其轉換成多個表的串連,如果轉換不成功則先執行IN裡面的子查詢,再查詢外層的表記錄,如果轉換成功則直接採用多個表的串連方式查詢。由此可見用IN的SQL至少多了一個轉換的過程。一般的SQL都可以轉換成功,但對於含有分組統計等方面的SQL就不能轉換了。 推薦在業務密集的SQL當中盡量不採用IN操作符 NOT IN 此操作是強列推薦不使用的,因為它不能應用表的索引。推薦用NOT
以下僅為參照,如果有多個執行個體,可能會有些許不同: 本環境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard Version 64-bit 雙執行個體同時安裝在一個 Windows Server 2008 Standard Version 64-bit OS上: 代碼 複製代碼 代碼如下: Windows Server 2008 Standard Version 64-bit SQL Server 2005
某一天,在偵錯工具時突然發現,在附加資料庫後,想添加關係表,結果出來了下面的錯誤: 此資料庫沒有有效所有者,因此無法安裝資料庫圖表支援對象。若要繼續,請首先使用“資料庫屬性”對話方塊的“檔案”頁或Alter AUTHORIZATION語句將資料庫擁有者設定為有效登入名稱,然後再添加資料庫圖表支援對象。 按照第一種方式更改怎麼也不行,並且檔案的所有者也是sa。在csdn中找了半天,有個同志給出了第二種解法,使用ssms。具體在SSMS中運行以下命令: Alter
方法一:(這種是最常用的,因為很多大段的內容都使用text ntext等資料類型,而我們通常也是替換裡面的內容) varchar和nvarchar類型是支援replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 資料類型欄位的語句 複製代碼 代碼如下:update 表名 set 欄位名=replace(cast(與前面一樣的欄位名 as varchar(8000)) ,'原本內容','想要替換成什麼')
方法一 複製代碼 代碼如下: declare @max integer,@id integer declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set