【SQL Server】讓使用者只看見自己能操作的資料庫

在資料庫管理上,使用者只能操作自己的資料庫,但是預設可以看見伺服器上的其他資料庫...感覺上並不是很好...而饅頭嘗試了許久最後向前輩Terry詢問才得到解答。這邊饅頭將當時設定的步驟一一列出,一方面做一個筆記另一方面也幫助正在看這篇文章的你^_^
在開始之前,建立資料庫與新增使用者等部分須請您上網搜尋相關設定與建立方式;另外本篇附註的程式碼均為T-SQL與法

...繼續閱讀 »

【SQL Server】使用CTE批次更新資料表

【SQL Server】使用CTE批次更新資料表
最近想到一個問題,就是如果資料表的資料要做一個批次更新時候有哪些方法可以達成呢?我想這時候應該沒有人會想一個個下Update吧,況且這樣也不實際...
CTE是什麼?
一般資料表運算式 (CTE) 可視為在單一 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 陳述式之執行範圍內定義的暫存結果集。CTE 與衍生資料表類似的地方在於,它不會儲存為物件,而且其生命週期僅限於查詢期間。但是與衍生資料表不同的是,CTE 可以自我參考,而且在同一查詢中可參考多次。(TechNet)
簡單來說有點像似拋棄式的View...但是本篇重點不再CTE...就交給有興趣的朋友上網搜尋囉

...繼續閱讀 »

【SSRS】Reporting Services Forms Authentication ( SSRS 表單驗證 )

【SSRS】Reporting Services Forms Authentication ( SSRS 表單驗證 )
這幾天在測試這件事情,我在Asp.net MVC的網站中,要看某些報表需要把使用者導向到SSRS中,但SSRS是吃Windows 的驗證,在這狀態上使用者需要做二次驗證,對使用者的操作體驗上的確是一個好的體驗吧?(這答案應該是肯定的)幸虧SSRS可以自己做網站的驗證模式,而本篇的範例就使用Form表單的驗證模式來說明吧!(當然不只有Form表單的方式,另外還有ADFS的方式)
元件建立
首先,我們需要先到這裡,下載本篇所需要的程式碼(此為安裝黨,內含所需的程式碼)

下載網站上雖寫 2008R2的版本,但小弟測試上仍然可在2012上執行!
Step2
安裝剛剛所下載的檔案,預設的路徑會在SQL的目錄下,並且開啟安裝路徑中的\Reporting Services\Extension Samples\FormsAuthentication Sample 開啟後上面會有VB以及C#的專案黨,您可以依照自

...繼續閱讀 »

【SSRS】在 Reporting Services 繪製甘特圖 (Gantt)--小技巧分享

【SSRS】在 Reporting Services 繪製甘特圖 (Gantt)--小技巧分享
有時候我在做項目規劃、流程控制或個人計畫常常會用到甘特圖,來協助我們了解開始時間與結束時間的依賴關係,而SSRS中內建並沒有甘特圖,今天剛好需要用到這個功能,就隨手紀錄並且與大家分享!
這邊我用一個小弟的一個比賽的時程計畫的假設資料來當本篇的資料來源吧!
首先,我們需要對資料做一些處理,需要知道他開始的時間以及持續的時間這兩個重要的資料欄位
並且按照時間做排序,讓我們的項目可以按照著時間跑

...繼續閱讀 »

【SQL Server | Asp.net MVC】使用WebAPI存取FileTable

【SQL Server | Asp.net MVC】使用WebAPI存取FileTable
首先,先說明一下本篇案例吧!這邊規劃了四個FileTable出來,分別存放Document、Photo、Video以及其他類型的檔案;在檔案上傳的時候就會將使用者上傳的檔案做分類管理避免所有資料都存放在同一個FileTable中,日後再尋找檔案造成不便的困擾而且更好管理這些檔案!
在小弟的案例中,會有四個不同的存放路徑,在這樣的情形要怎麼去處理檔案上傳的路徑呢?或許有人會想寫四個API然後針對四個不同的路徑去做處理,但是這樣子實在太複雜了,後續要維護部好處理,所以小弟這邊就用了一個方法,利用一個stored procedure(下方程式碼),只要傳入FileTable名稱就可以取得相對應的檔案存放路徑,這樣就可以不用寫四個相同功能的API,節省了不少時間!

...繼續閱讀 »

【SQL Server】開啟好用的 FileTable 設定

【SQL Server】開啟好用的 FileTable 設定
這邊先說明一下本身案例好了:最近公司老闆說系統需要有一個檔案上傳的功能,並且需要檔案管理方便,所以選擇了SQL Server 2012 提供的 FileTable的功能,以API對FileTable進行存取資料,在localhost端的時候可以正常的讀寫FileTable的資料,而發佈到IIS中總是出現錯誤的資訊,後來看到大頭目兼好友的Sky大哥的文章和Study4.TW的成員討論得以順利完成,而這邊紀錄一下自己所處裡的方法與程式碼與大家分享,但因篇幅問題分成兩篇來分享,本篇介紹FileTable的設定方法。
FileTable是SQL Server 2012開始提供的功能,要開啟此功能可以在SQL Server 組態管理員中開啟
【SQL Server 服務】>【SQL Server】(右鍵)>【內容】>【FileStream】

...繼續閱讀 »

【SQL Server | T-SQL】SQL Server 2008 群組累計加總

【SQL Server | T-SQL】SQL Server 2008 群組累計
有時候我們會在資料運算中加上了一個累計加總的資料欄,在SQL Server 2012中可以OVER子句來完成(SQL Server2012 OVER),而今天剛好就遇到需要計算庫存的累計數量,在網路上找了許久,2012可以用比較輕鬆的方式解決,但在2008就沒辦法使用,所以只好利用下面的方法來做到這項功能了
今天的需求是要統計同一個產品,從期初的庫存量計算時間範圍內的進貨數量及出貨數量的統計量,以下是小弟使用CTE的計算方式

...繼續閱讀 »

【SQL Server】Reporting Builder 無法連結Reporting Services

【SQL Server】Reporting Builder 無法連結Reporting Services
最近工作的地方要求系統要產出報表,而廠商提供的開發環境是VS2010以及SQL 2008,暫時無法使用SSDT-BI的工具開發,所始使用Reporting Builder 2.0
在開發的時候想直接連接Reporting Services 方便自己作業,想不到連接一直出現下列的錯誤訊息

...繼續閱讀 »

【SQL Server】取出群組中最後一筆資料 (雙鍵值)

【SQL Server】取出群組中最後一筆資料 (雙鍵值)
這個問題,我大約想了三四天了,今天終於讓我找的一個好的方法去解決這個問題,案例是某個客戶訂了某些產品,他最後一次交易的金額,所以要群組客戶跟產品,跟上一篇的筆記:Group中的最新一筆資料不太依樣,上一篇是依照一個單一的情況,來擷取最後一筆資料!而今天是依照兩個欄位來取得最後一筆

...繼續閱讀 »