in

Darkthread

黑暗執行緒
All Tags » SQL 2005 (RSS)

Browse by Tags

  • 【茶包射手日記】不限條件選項之SQL組裝與資料庫OR運算特性驗證

    在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區? 我過去都用條件式動態組裝: if (ddlArea.Text != "*"...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-01-2010
  • CODE-在SQL Server XQuery中使用欄位或變數值當條件

    今天處理到一個需求,要在SQL 2005中用Table1 JOIN Table2,Table2中有個XML欄位,裡面有多筆資料,JOIN時要用Table1的某個欄位當條件在XML中挑出特定XmlNode。 聽起來很模糊對吧? 我用來實例來比喻,假設有個Player資料表跟Team資料表,Team資料表中有個MemberListXml欄位,其中有該球隊成員的相關資料。我今天要用Player資料表去JOIN Team資料表,先找出Player所屬球隊,再從該球隊MemberListXml中用XPath語法調出該名球員的資料。 XQuery 允許我們在SQL Server中使用熟悉的XPath,由於PlayerNo是變數...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-08-2010
  • MEMO-Procedure Transaction: SQL Server vs Oracle

    同事詢問關於Procedure內是否會自動包成Transaction的問題,我的認知是SQL要額外下SET XACT_ABORT ON,但Oracle則預設會自動包成Transaction。記憶有些模糊,所以索性做個實驗最準。 分別在SQL, Oracle寫了Procedure,先塞入兩筆資料,第三筆故意產生PK重覆錯誤,觀察資料庫是否有前兩筆資料來判別是否有Transaction保護。實驗證明,原先的認知沒錯,二者行為不同。 SQL Server Procedure要將操作包成Transaction的話,記得要下 SET XACT_ABORT ON ! /*** SQL Server Test...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 11-05-2009
  • 取代DTCPing的新工具-DTCTester

    今天要設定Windows 2008防火牆使用SQL分散式交易,查資料時 發現了 檢測MSDTC連線的新工具-- DTCTester 。 簡單來說,它是用以取代DTCPing的改良版。主要優點是只需在Client執行,不像DTCPing得在Client,Server都跑互連,而且由於它會真的連線SQL Server進行一些讀寫測試,相較於DTCPing只檢查網路傳輸層,更能正確反應SQL連線的真實狀態。換句話說,過去DTCPing成功但SQL分散交易不通的"偽陽性"失真情況可望改善。 使用時要先在ODBC設定DSN(注意: x64 OS要記得 設定32bit的ODBC ),然後傳入DSN名稱...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-14-2009
  • 【茶包射手專欄】一個sp_dropserver問題案例

    同事手上有一台測試性質的SQL Server,經手褻玩的人頗多,又常進行一些SQL測試。交往複雜之下,這種香爐型的環境一旦發起狠來,往往讓射手們為之膽寒。 今天遇到的狀況是同事要為機器改名(是想重新做人嗎? 呵),SQL機器改名SOP中應執行 sp_dropserver/sp_addserver的步驟 ,結果不幸地: sp_dropserver 'TESTSQLSVR' Msg 20582, Level 16, State 1, Procedure sp_MSrepl_check_server, Line 31 Cannot drop server 'TESTSQLSVR'...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 09-28-2009
  • 小心駛得萬年船--SQL指令保險栓

    手動對資料庫下指令是一件恐怖的事,稍一操作不慎,就有可能把整個系統給毁了。 理論上,吾人應該極力避免手工更動資料這等可恥行徑。只要系統考慮得夠周詳,預先料想到所有可能出現的詭異狀況,一一提供相關的介面,經過程式邏輯檢查後才對資料進行處置或修正,不可能出現需要手動改資料的狀況。這是一個好的系統應有的嚴謹度!! 好,官冕堂皇的屁話說完了,現在來聊聊怎麼做好這件"可恥的事"? (道德感強烈者或軟體工程基本教義派請略過本文) 當我們萬不得已,必須使用T-SQL指令直接對資料庫進行操作時,由於指令不受到任何既有程式邏輯的保護,條件設定稍有不當,很有可能本來只要更新一筆,變成更新1000筆...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-25-2009
  • SQL Server, 請幫我從1數到100

    今天看到 保哥 一篇 關於LINQ to SQL分頁問題 的文章,裡面有一段範例是利用'User ' + cast(cast(rand() * 100 as int) as varchar(3))的技巧連續執行十次產生十筆測試用的資料。 這讓我想起之前在做 CSV字串分割成陣列UDF 時 意外學到 的技巧,可以借用鮮為人知的master.dbo.spt_values系統資料表,讓SQL產生一段連號數字,這樣就能一口氣塞入連號的"User 1”, "User 2”, “User 3”… 測試資料。 查詢 SELECT DISTINCT NUMBER FROM master...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-03-2009
  • SQL UDF-將CSV字串轉成SELECT結果

    直接把CSV轉成可以直接SELECT內容的SQL函數? 我肖想好久了,今天終於動手把它寫出來了。 我原本參考一篇Google到的 文章 ,其中的CTE完全用SELECT搞定的寫法很酷,我曾嘗試改為Table Variable放入UDF,但測試結果不理想,速度慢了一倍(五萬次 22秒 vs 10秒)。最後還是乖乖地用WHILE LOOP實作,程式如下: ALTER FUNCTION SplitCSV ( @csv NVARCHAR(4000), @delm CHAR (1) ) RETURNS @ Result TABLE ( Element NVARCHAR(4000) ) AS BEGIN DECLARE...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-11-2009
  • 【茶包射手專欄】SQL 2005 SP2安裝失敗

    最近跟SQL的Hotfix很有緣,話說為了因應 KB956391會造成SSRS無法列印報表 的問題,跟同事逐一為手上的SQL及SSRS主機上Patch。 不過,其中一台SQL升級時卻遇到SP2無法安裝的情況,依據提示,查看了C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix下的幾個Log檔案: Summary.txt中出現: Product : Database Services (MSSQLSERVER) Product Version (Previous): 1399 Product Version (Final...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-31-2008
  • KB-三探Windows Update後SSRS不能列印問題

    上回貼出 Windows Update導致SSRS不能列印問題 後,有些網友成功了,但似乎有些網友依循文章的解法SP2->GDR2依然不能解決問題,裝完後RSClientPrint.cab仍未更新。由於手邊沒有可以驗證的同樣情境,我想深究也無從嘗試。 今天同事在更新一台SQL時,同樣的情境上演了。GDR2安裝、移除、再安裝了四五次,RSClientPrint.cab還是文風不動,一直保持2007/2/10的版本。 這真是天賜的良機呀!讓這麼刁鑽的問題在我眼前重現,著實令人激動不已... (遇到難題還這麼High,我應該是萬中選一的賤骨頭吧?) 幾經嘗試,我找出一條可以解決的路徑: 安裝SP2...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-30-2008
第1頁,共6頁 (52個項目) 1 2 3 4 5 下一頁 > ... 最後一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems