琉璃網站
CommunityServer BlogEngine.Net 中文技術社群網站

依標籤瀏覽

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

    在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區...
  • 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語法調出該名球員的資料...
  • 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的話...
  • 取代DTCPing的新工具-DTCTester

    今天要設定Windows 2008防火牆使用SQL分散式交易,查資料時 發現了 檢測MSDTC連線的新工具-- DTCTester 。 簡單來說,它是用以取代DTCPing的改良版。主要優點是只需在Client執行,不像DTCPing得在Client,Server都跑互連,而且由於它會真的連線SQL Server進行一些讀寫測試,相較於DTCPing只檢查網路傳輸層,更能正確反應SQL連線的真實狀態。換句話說,過去DTCPing成功但SQL分散交易不通的"偽陽性"失真情況可望改善...
  • 【茶包射手專欄】一個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...
  • 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...
  • 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 @...
  • 【茶包射手專欄】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...
  • KB-再探Windows Update後SSRS不能列印問題

    自從貼出 安裝KB956391後SSRS不能列印問題 後,陸續又接獲同事及網友的回報,才慢慢釐清這個事件的始未... SSRS不能網頁列印的原因源於RSClient Print這顆元件被ActiveX KillBit封殺,而封殺的理由是基於安全考量,RSClientPrint Class存在一個 GDI+漏洞 ,讓駭客可以透過惡意的BMP發動溢位攻擊。換句話說, KB956391 為了修復GDI+弱點,就透過Kill Bit判了舊版RSClientPrint元件的死刑,安裝後SSRS不能列印是By...
  • TIPS-Alter Assembly's Owner

    Attach或Retore SQL資料庫到別台,必須要先Drop User才能重設User權限,這個我很早就有 經驗 。 這次的問題有點不一樣,在Drop User時出現以下訊息: The database principal owns an assembly and cannot be dropped 用SQL Server Management Studio檢查,果然有一個SQLCLR Stored Procedure的Owner不是dbo,而是這個我要Drop的User。我想起來,之前在Deploy...
  • SQL 2005 TIPS - Convert NText To Xml Data Type

    使用SSMS SELECT XmlStringCol FROM myTable,發現由於SSRS的結果字元數限制(65535個字元),在結果視窗複製欄位內容再到Notepad貼上,XML的後半截不見了。 雖然這個限制可以修改(如下圖),但一時想要展現高超的T-SQL指令技巧,我決定把它轉成XML,如此可以閃過長度限制,還可以直接在SSMS中檢視XML內容,一舉兩得。 噹!! (痛) 我踢到鐵板了! XmlStringCol是一個NText,裡面放存放的內容來自*.xml的讀取內容,試著將XmlStringCol轉成XML會發生錯誤...
  • 兩個Oracle Linked Server與SQL間資料移轉問題

    我在一台SQL上設了Linked Server指向ORACLE,利用 INSERT INTO SqlTable SELECT * FROM LinkedOracleServer..MySchema.MyTable 的方法從ORACLE端匯資料過來,一路相安無事。 直到今天同事改了ORACLE上的Schema,將USERNAME由VARCHAR2改為NVARCHAR2,結果在倒資料時冒出以下錯誤: Msg 7356, Level 16, State 1, Line 5 The OLE DB provider...
  • Visual Studio 2008不支援SSRS的報表專案編輯

    拿到VS2008的朋友,別急著把VS2005移光光,如果你還有編輯SSRS報表專案需求的話。 Visual Studio在大部分的舊版相容策略上,都維持簡便無痛的升級方式,但也有例外,例如: Reporting Service專案。 SQL Server 2000的Reporting Service報表限定只能用VS.NET 2003編輯,SQL 2005的SQL Server Reporing Service(SSRS)則必須搭配VS2005使用。因此Visual Studio 2008目前無法開啟SSRS的專案...
  • .NET分散式交易程式開發FAQ

    當系統存取的資料庫伺服器超過一台,或涉及異種資料庫平台間的資料整合,常常就會伴隨分散式交易(Distributed Transaction)的需求。這門進階的學問,在運用的實務上,瑣碎曲折的小細節還挺多的。 以下是我在RUN!PC發表過的文章,整理了使用.NET程式整合MSDTC做分散式交易的一些經驗分享,內容包含了: 常見的疑難雜症及排除方法、分散式交易狀況的偵測、SQL 2005的LTM與OleTx模式、不同做法的效能比較... 等等,在此提供大家參考。 文章下載 【其他相關文章】 KB-.NET...
  • 【茶包射手專欄】奧妙的MSDTC咒語

    之前運作一段時間的電子表單系統,最近又擴充了三台新主機。奇怪的是,在三台新主機上,有個撤銷表單的網頁功能一直出問題,會傳回 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 錯誤。 通常,存取權限錯誤可以用抓鬼一哥 Process Monitor 輕易抓出來,但這次卻不然。ProcMon裡看不到可疑的Registry或File Access Denied訊息。Trace Code發現這段程式啟動了 TransactionScope...
Copyright 2010 琉璃網站 , 本站採用 CommunityServer 2008.5 為社群平台
Telligent 贊助台灣區 .Net DCP partner
各圖片與商標為各廠商所有,轉載本站圖文內容須需註明出處網頁