in

Darkthread

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

Browse by Tags

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

    在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區? 我過去都用條件式動態組裝: if (ddlArea.Text != "*"...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-01-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的話,記得要加上 BEGIN TRAN / COMMIT TRAN 及 SET XACT_ABORT...
    公佈在 黑暗執行緒 (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
  • 小心駛得萬年船--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
  • KB-再探Windows Update後SSRS不能列印問題

    【2008-10-30更新】依本文做法仍無法更新RSClientPrint.cab的朋友,請參考我的 第三帖藥方 。 自從貼出 安裝KB956391後SSRS不能列印問題 後,陸續又接獲同事及網友的回報,才慢慢釐清這個事件的始未... SSRS不能網頁列印的原因源於RSClient Print這顆元件被ActiveX KillBit封殺,而封殺的理由是基於安全考量,RSClientPrint Class存在一個 GDI+漏洞 ,讓駭客可以透過惡意的BMP發動溢位攻擊。換句話說, KB956391 為了修復GDI+弱點,就透過Kill Bit判了舊版RSClientPrint元件的死刑,安裝後SSRS不能列印是By...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-24-2008
  • TIPS-SqlConnection的ConnectionString保密機制

    在設計資料庫相關程式時,連線字串最好能以加密方式存在config檔案裡;再進一步,最好連解密字串的機制都封裝在特定的資料存取元件中,開發人員及呼叫端程式只需傳入SqlCommand或更高階的抽象化資料物件,就可以完成資料庫存取作業,不必也不能得知連線字串的相關細節。 只是依我自己的實務經驗,有時直接傳連線物件(SqlConnection)給呼叫端是較省事的做法(丟一個連線給你自己玩,別來煩我! 是有點不負責任,但元件開發者未必有時間陪著在每個案子中抱著各式不同的需求打滾),連線丟出去了,呼叫端來個SqlConnection.ConnectionString會不會就讓辛苦加密保護的連線字串瞬間曝光呢...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-12-2008
  • KB-SQL 2000 BULK INSERT Error

    今天在一台SQL 2000上做BULK INSERT,語法是 BULK INSERT PicLibrary FROM 'C:\Output\PicInfo.txt' WITH ( BATCHSIZE = 1000, FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', TABLOCK ) 我之前在SQL 2005上做過 同樣的事 ,但這回在SQL 2000上卻一直爆出錯誤: 訊息 4866,層級 16,狀態 1,行 10 大量載入失敗,資料檔案的資料行對於資料列1,資料行4而言太長。請確定已指定正確的欄位結束字元和資料列結束字元...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 02-25-2008
  • BULK INSERT Performance

    一直以為BULK INSERT就不會記Log,結果今天跌了一跤... 我下的語法如下(錯誤示範,小朋友不要學) TRUNCATE TABLE RESD BULK INSERT RESDE FROM 'C:\DataProc\Output\RESD.txt' WITH ( FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n' ) RESD.txt約1.4G,結果BULK INSERT花了30分鐘還沒做完,Log檔就長到20G,把HD空間給吃光。急忙Cancel,但依DB的運作,此時SQL會將剛才未做完的INSERT...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-11-2008
  • Two Database Tips

    #別用浮點數算錢 Don't use float in currency calculation DECLARE @f1 FLOAT , @f2 FLOAT DECLARE @f3 FLOAT , @f4 FLOAT SET @f1=6481.45 SET @f2=6000 SET @f3=0.1 SET @f4=(@f1-@f2)*@f3 SELECT (6481.45-6000)*0.1 AS V1 SELECT @f4 AS V2 SELECT ROUND(@f4, 2) AS V3 SELECT 48.145 - @f4 AS V4 又到了猜迷時間,V1=48.145 V2=48.145...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 11-08-2007
第1頁,共3頁 (24個項目) 1 2 3 下一頁 >
Powered by Community Server (Non-Commercial Edition), by Telligent Systems