2011年1月29日

關於 SQL Server 2000 的定序問題

SQL Server 2000 SP4 的主流支援服務已經在 2008 年 4 月 8 日結束,但依舊還是有人在使用,如果可以,應該是要升級到尚提供支援服務的版本,例如:SQL Server 2008。日前就被人家問到了,關於 SQL Server 2000 定序的相關問題,特將其整理如後。

查詢特定資料庫的定序

使用如下的 T-SQL 語法:
SELECT DATABASEPROPERITYEX('<資料庫名稱>', 'Collation')

指定定序的方式

指定定序的方式有 3 種,第 1 種是在安裝 SQL Server 2000 時,就加以指定,這是所謂的伺服器層級的定序。若習慣使用預設的安裝方式,則肯定是看不到定序的設定選項。

另外 2 種則是在建立資料庫或資料表時,才加以指定,這種是資料庫層級的定序與資料表層級定序。

  1. 伺服器層級的定序
    於安裝 SQL Server 時,選擇「進階選項」(Advanced options)進行安裝,才能出現指定定序的對話視窗
    進階選項
    選擇定序
  2. 資料庫層級定序
    於建立資料庫時,指定所要的定序
    指定定序
  3. 資料表層級定序
    於建立資料表時,指定所要的定序
    指定定序

修改定序

  • 重設伺服器定序,可用 rebuildm.exe。當 master 系統資料庫毀損時,也可用這個工具進行修正。
  • 於建立資料庫或資料表後,修改資料庫或資料表的定序:
    -- 修改資料庫定序為 Chinese_PRC_CI_AS
    ALTER DATABASE AlexChuo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE AlexChuo COLLATE Chinese_PRC_CI_AS;
    ALTER DATABASE AlexChuo SET MULTI_USER;
    
    -- 修改資料表定序為 Chinese_PRC_CI_AS
    ALTER TABLE Mytable ALTER COLUMN 姓名 nvchar(10) COLLATE Chinese_PRC_CS_AI;

    要注意的是,修改資料庫的定序設定,並不會變更該資料庫內既有物件的定序設定。
  • 修改欄位定序比較簡單,只要使用如下的 T-SQL:
    ALTER TABLE <資料表名稱> ALTER COLUMN <欄位名稱> <欄位類型與長度> COLLATE <定序>;

    例如:
    ALTER TABLE 員工 ALTER COLUMN 姓名 nvchar(10) COLLATE Chinese_PRC_CS_AI;

2011年1月17日

於安裝 SQL Server 2005/2008 或套用 Service Pack 時,遇到檢查「重新啟動電腦」規則失敗

於安裝 SQL Server 2005/2008 或套用 Service Pack 時,會檢查相關的規則,遇到檢查「重新啟動電腦」規則失敗的訊息:

即便重新開機,再次執行 SQL Server 安裝程式或套用 Service Pack,同樣的訊息依舊存在。

之所以會發生此種問題,是因為以前執行過其他軟體的安裝程式,而該軟體建立了擱置檔案作業,因此在執行或套用 SQL Server 安裝程式與 Service Pack 之前,必須重新啟動電腦才行。

如果重新啟動電腦之後,嘗試再安裝一次,還是出現同樣的錯誤訊息,就表示我們要手動刪除擱置檔案作業:

  1. 關閉安裝程式。
  2. 找出以下機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. 在右側窗格中的 PendingFileRenameOperations 上,連按兩下滑鼠左鍵,選取所有的內容,將其刪除。
  4. 再執行安裝程式。

2010年12月30日

使用 Wondows PowerShell 將兩個資料夾中,主檔名相同的檔案搬移到另外一個資料夾

假設資料夾 1 為 D:\doc,資料夾 2 為 D:\txt,其內分別儲存 .doc 與 .txt 檔,要將資料夾 1 中,主檔名與資料夾 2 主檔名相同的檔案搬移到另外一個資料夾(D:\newdoc)。

要如何使用 Wondows PowerShell 進行這樣操作呢?

例如:

資料夾 1(D:\doc)內有下列檔案:

  • a.doc
  • b.doc
  • c.doc
  • aa.doc
  • ab.doc
  • ac.doc

資料夾 2(D:\txt)內有下列檔案:

  • a.txt
  • aa.txt
  • bb.txt
  • cc.txt

資料夾 1 與資料夾 2 中,相同主檔名的有:

  • a
  • aa

所以要將 a.doc 與 aa.doc 搬移到新資料夾(D:\newdoc)。Windows PowerShell 程式碼如下:

# 宣告變數
$folderA = "D:\doc\"
$folderB = "D:\txt\"
$folderNew = "D:\newdoc\"

# 找出資料夾中的每個檔案
foreach ($fileA in Get-ChildItem $folderA)
{
    # 組出另一資料夾中的檔名
    # 方法 1
    $fileB = $folderB + $fileA.Name.Remove($fileA.Name.Length - $fileA.Extension.Length) + ".txt"
    # 方法 2,此法有缺點,萬一檔名中有數個 .doc 都會被換成 .txt
    #$fileB = $folderB + $fileA.Name.ToLower().Replace(".doc", ".txt")

    # 檢查檔案是否存在資料夾中
    If (Test-Path $fileB) {
        "搬移檔案: $fileA"
        $fileA.MoveTo($folderNew + $fileA.Name)
    }
}

2010年11月14日

修改 Windows 網路卡的自動公制設定

「公制」(或稱計量,Metric)是指派給網路卡的路由值,其用途為識別與使用路由有關的成本。影響成本的因素有:網路的頻寬(或稱速度,例如:10Mbps、100Mbps)、躍點計數(Hop Count)或網路延遲(Network Delay)…等。
從 Windows XP 之後,微軟就開始提供「自動公制」或稱「自動計量」的新功能。顧名思義,就是可以自動設定以網路頻寬為作為計算路由基準的公制。作業系統預設就會啟用自動公制的功能,當然您也可以手動修改設定。
比方說,電腦安裝兩張網路卡,所連接的網路頻寬都一樣,又都是位於同一個網段(亦即網路卡的預設閘道一樣),此時手動修改公制就很有用,因為可以讓公制數值較小的網路卡優先被使用
修改自動公制設定的操作步驟:
  1. 開啟「控制台」,連按兩下「網路連線」
    如果是 Windows Vista (含)之後的作業系統,請依序開啟「控制台」中的「網路和共用中心/變更介面卡設定」
  2. 在要修改的網路卡上,按下滑鼠右鍵,選擇 [內容]
  3. 按下「這個連線使用下列項目」中的「網際網路通訊協定 (TCP/IP)」「網際網路通訊協定第 4 版 (TCP/IPv4)」「網際網路通訊協定第 6 版 (TCP/IPv6)」,然後按下 [內容]
  4. 「一般」] 索引標籤中,按下「進階」
  5. [IP 設定] 索引標籤,清除「自動公制」「自動計量」核取方塊,然後在「介面公制」「介面計量」欄位中,輸入您要的公制。
    可填入的公制值為 1 9999
  6. 如果要修改預設閘道的「自動公制」「自動計量」,請按下位於「預設閘道」下的「編輯」按鈕,清除「公制」「計量」核取方塊,然後在「公制」「計量」欄位中,輸入您要的公制。
    可填入的公制值為 1 9999


由上述的操作說明,您可以瞭解到:每個閘道都可個別設定其預設閘道的公制,此舉可以讓您進一步控制區域路由使用的公制。例如,您可以讓自動公制功能設定指派給網路卡的路由,同時又手動設定指派給預設閘道的公制。

請特別注意: 如果在網路卡層級指定了公制,但又新增了閘道並設定自動公制功能,那麼該閘道則會沿用指派給該網路卡的公制。例如,如果您在網路卡層級指定公制為 1,然後新增閘道,並勾選閘道的自動公制核取方塊,該閘道也會被指派公制 1。

2010年11月13日

如何將 Snagit 的 Stamp(圖章)從一台電腦轉移到另外一台電腦(含下載圖章說明)

Snagit 這套抓圖軟體的一大特色就是原廠提供了許多的 Stamps(圖章),而且都是 .exe 的可執行檔,因此只要安裝完這些圖章檔之後,即可馬上使用他們。

下載圖章檔的操作方式為:

  1. 按下「Draw」功能表,接著按下「Drawing Tools」功能區中的「Stamp」圖示。
    按下 Stamp 圖示
  2. 按下「Download more…」項目。
    按下 Download more…
  3. 找到「Stamps」區塊,裡面就有 3 種分類圖章可供下載:
    • Accent
    • Clip Art
    • Number And Letter
    數種 Stamps
  4. 以下圖為例,是按下超連結「Accent」「Accent  Samples」之後,下載「Accents: Proofreader Mark Stamps」的畫面:
    下載 Stamps

雖然圖章檔已經是 .exe 檔,但每當新電腦安裝好 Snagit,都要用滑鼠雙擊 .exe 的圖章檔,進行安裝操作。若需要安裝 10 個圖章檔,就要重複操作 10 次上述的動作,難道沒有更簡單的方法嗎?

有的!圖章檔安裝完之後,在 C:\Program Files\TechSmith\Snagit 10\Stamps(32 位元作業系統)或 C:\Program Files (x86)\TechSmith\Snagit 10\Stamps(64 位元作業系統)會有許多子目錄,這些子目錄就是我們從步驟 2. 所看到的圖章分類名稱。

因此要將 Snagit 的圖章從一台電腦轉移到另外一台電腦,就是把 Stamps 下的子目錄複製到另外一台電腦相對應的目錄即可。

不過,如果您有加入自己的圖章,在預設狀態下,自訂的圖章會儲存在 C:\Users\<使用者名稱>\Documents\Snagit StampsC:\Documents and Settings\<使用者名稱>\My Documents\Snagit Stamps。建議您在 C:\Program Files\TechSmith\Snagit 10\Stamps(32 位元作業系統)或 C:\Program Files (x86)\TechSmith\Snagit 10\Stamps(64 位元作業系統)之下,建立新的目錄,然後把自訂圖章的檔案搬移到剛建立的目錄。

提醒您,如果作業系統是 Windows Vista (含)之後,請記得以系統管理員身分執行檔案總管進行檔案的複製與搬移操作。