移轉 Table 到不同 FileGroup

回答朋友的問題:利用 drop_existing 選項,在新 FileGroup 重建叢集索引

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/025825ee-ecbc-4d7c-94ff-0595afc48347/how-to-move-a-table-from-a-file-groupprimary-to-another?forum=transactsql

CREATE unique clustered INDEX pk_testmember ON DBO.資料表

(

欄位 ASC

)

WITH (DROP_EXISTING=ON, ONLINE=ON)

ON 新的 FileGroup

Unicode、Big5或其他的文字編碼?Windows 輸入的是 Unicode,要如何解釋是你告訴 SQL Server

剛朋友問的問題,簡單的邏輯如下:

select ‘a中文煊’ collate SQL_Latin1_General_CP1_CI_AS,Convert(varbinary(10),’a中文煊’  collate SQL_Latin1_General_CP1_CI_AS),
‘a中文煊’ collate Chinese_Taiwan_Stroke_CI_AS,Convert(varbinary(10),’a中文煊’  collate Chinese_Taiwan_Stroke_CI_AS),
N’a中文煊’ collate Chinese_Taiwan_Stroke_CI_AS,Convert(varbinary(10),N’a中文煊’  collate Chinese_Taiwan_Stroke_CI_AS)

image

輸入時,Windows 收到的是 Unicode,且包含延伸字集,如同我現在的選字:

image

當檔案用 Unicode 存時,你都可以看得到,因為是文字編輯器在呈現這些文字圖形與 Unicode 的對應。

但要跟 SQL Server 溝通或存入時,你會告知目標的字集為何,因此上述三個範例,分別要用 Latin、Big5 和 Unicode 呈現,而 Unicode 是 superset,其他的字集較小,SQL Server 只能轉換兩個字集間能轉的部分,其餘都是問號了

使用線上服務時,IT 團隊乃至於用戶是否可以並如何擁有自己的步調

不知大家如何處理團隊使用線上服務時,線上服務一直改版,改變界面的問題,讓團隊成員被迫要全部一起學新東西,不管他是否正在水深火熱地忙著專案的困難。
以往是少數成員當作先遣,學完並測試完後,告訴大家要如何做才可平滑移轉,或是先觀望,等白老鼠寫心得。現在卻會碰到會議時,一開線上功能,它不知何時自動升了,全部成員傻眼的窘境,當場談不出 SOP,各個都只能喃喃自語同一句話"我再回去試"。

未聞道,久矣。恨,難已

見賢思齊,見不賢內自省,唯有每一個人自身都變好,整體才會好,如同木桶理論,我們個體不要是群體最弱的那一環。

見賢則酸,見不賢三餐罵,我們放在心裡的不平不會讓自己變好,整體只會每況愈下。我們既不會欣賞,也不會處理問題,沒有真、善、美,只是自己活在自己建立的心牢裡。

一生因與外界互動而能更了解自己,自己定義什麼是好,自己跟昨日的自己比,而非跟其他的孤例,成功的案例無法複製,他人的人生也無法仿效。

當 VS 2015 裝在 Win 2012 R2 時,會啟用 Hyper-V

當 VS 2015 裝在 Win 2012 R2 時,會啟用 Hyper-V 但沒有安裝管理介面以及相關的其他物件。需要透過 PowerShell 移除掉 Hyper-V 再以 Windows 重新啟用這個 Features 才有管理介面以及相關的物件

透過 RS 呈現 R 的圖形

參考:https://www.mssqltips.com/sqlservertip/4127/sql-server-2016-r-services-display-r-plots-in-reporting-services/

我寫的範例報表 ShowRImage.rdl

透過 T-SQL 呼叫 R Script 可以直接傳回圖檔的 binary 結果,就可以透過影像物件呈現

以如下的 R-Script 為例

EXEC   sp_execute_external_script
      @language = N’R’
     ,@script = N’    df <- inputDataSet; #read input data
                image_file = tempfile(); #create a temporary file
                jpeg(filename = image_file, width=500, height=500); #create a JPEG graphic device
                hist(df$Ages); #plot the histogram
                dev.off(); #dev.off returns the number and name of the new active device (after the specified device has been shut down). (device = graphical device)
                #file() opens a file, in this case the image. rb = read binary
                #readBin() reads binary data. what = described the mode of the data. In this case, it"s raw data. n = maximum number of records to read.
                #data.frame converts the data to a data frame, which is required as output by SQL Server. The result is written to the OutputDataset variable.
                OutputDataset <- data.frame(data=readBin(file(image_file,"rb"),what=raw(),n=1e6));
                    ‘
    ,@input_data_1 = N’SELECT Ages = DATEDIFF(YEAR,[BirthDate],GETDATE())
                        FROM [AdventureWorksDW].[dbo].[DimCustomer];’
    ,@input_data_1_name = N’inputDataSet’
    ,@output_data_1_name = N’OutputDataset’
WITH RESULT SETS ((plot varbinary(max)));

從 SSMS 的執行結果可以取到 varbinary(max) 的結果:

image

在 Report Builder 就以這段 T-SQL 當作資料集

image

在報表中加入影像物件,設定來源就是資料庫傳回:

image

透過 Report Builder 和 Report Server 都可以正常執行:

image

image

TFVC 和 Git 的比較

就兩個技術一開始的出發點,或許可以讓人評斷自己的團隊乃至於個人適合選用的板控:

TFVC:MS 的開發團隊要控管 Visual Studio、C++ …等產品的板控,一家公司內集中控管程式碼

Git:Linus Torvalds 為 Open Source 散在世界的開發人員提供分散式版控。但若選擇將 Git 的 Server 放在 TFS,可以補強部分企業控管的需求

但集權與分治的基本差異,在安全與協調作業流程上,很難有一定的準則。相信在 TFS 內的 Git 要相容於 Open Source 界的作業,不太能改成 TFVC 的安控、鎖定、擱置、細緻的 Check-in policy…等。而 TFVC 也不會有 Client 端的版本 clone。

https://msdn.microsoft.com/en-us/Library/vs/alm/code/overview

image

image

image

image

image 針對單檔的權限賦予,不知如何做 Git 的部分…

SSIS 2012/2014 專案部署只部署修改某個有 Bug 的封裝

若專案已經部署且上線使用,當下開發中的 SSIS 專案繼續開發,這時線上的某個封裝錯了要修 Bug,而 2016 才可以針對特定專案版本的特定封裝個別部署(號稱的新功能,現在還沒看到),則避免開發中的封裝也一併被專案部署發行到正式機,可能的作法有:

1.透過 Source Control 調出上線的版本,單改有 Bug 的封裝後部署

2.從 Production 匯出

image

產生 ispac 檔

image

透過 SSDT 匯入後,將專案名稱取與 Production 相同,修改有 bug 的封裝後再部署

image

SSIS 直接輸入到有格式的 Excel 內

定義名稱區塊,可以參考:http://yangxinde.pixnet.net/blog/post/26182398-excel-%E9%81%B8%E5%8F%96%E7%AF%84%E5%9C%8D%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%88%87%E5%88%AA%E9%99%A4%E5%90%8D%E7%A8%B1

 

image

SSIS 會將資料填入到區塊的下方,並擴增區塊。所以 template 建好後,每次從 template copy 一個新的填入

一般資料輸入到範本 Excel

image

名稱一定要兩格以上 SSIS 才看得到,可以透過縮小格子來排版

image

可新增到不同的名稱下

image

RS 訂閱報表採用 Windows 檔案共用時,輸出的檔案名稱包含日期

感謝聽課的朋友提醒,在檔案名稱欄位加上 @Timestamp

image

輸出如下的檔案

image

關注

有新文章發表時,會立即傳送至你的收信匣。

加入其他 31 位關注者