關於我

我的相片
用心思考、保持熱情,把工作上的經驗作分享與紀錄。希望能夠跟大家一起不斷的成長~

MSSQL T-SQL 撰寫測試時的好用語法

剛在測試撰寫一段Query

順便介紹一下幾個好用的語法,可幫助除錯..等

waitfor delay '00:00:05:000' 

此可讓作業暫停!

if @count%10000=0 print 'OK' else pirnt 'NG' 

if else 判斷式..相當好用! %則是取餘數 ~

Set nocount on 

可讓預設會顯示的『影響資料筆數』不顯示!

簡單 T-SQL Cursor 範例

DECLARE InvoiceOID_cursor CURSOR FOR 
select oid from Invoice
OPEN InvoiceOID_cursor 
FETCH NEXT FROM InvoiceOID_cursor INTO @InvoiceOID
WHILE @@FETCH_STATUS = 0
BEGIN
    --    PRINT @message
    --    delete from XXX where oid = @InvoiceOID
    --    Do Something !
    FETCH NEXT FROM InvoiceOID_cursor INTO @InvoiceOID
END 
CLOSE InvoiceOID_cursor
DEALLOCATE InvoiceOID_cursor

瀏覽器市占率調查參考網站

http://www.axiis.org/examples/BrowserMarketShare.html

參考上方連結~

可看到目前瀏覽器市占率狀況。

我看到的今天:

image

2009/08月份FireFox的市占率已經來到47.40%囉~

IE6、7、8加起來約占了39.30%。

好厲害的FireFox~

如何更改 tempdb 實體檔案位置

更改位置Script

USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\DB\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'E:\DB\templog.ldf');
GO

完成後可用下方Query檢查是否更改完成。

SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');

最後再重啟資料庫即可

如何確認SQL Server Integration Services是否有安裝並啟用

可開啟SQL Server Configuration Manager視窗,看看SQL Server 服務中,是否有一項【SQL Server Integration Services】項目,

如果有的話,表示Integration Services服務已有安裝。沒有的話則需放入安裝光碟重新勾選安裝此項目。

即可確認是否有安裝並啟用了!

擷取

Asp.Net 2.0 IIS Register

找到一篇不錯的參考文 http://blog.xuite.net/jungte.lin/blog/25133697

ASP.NET can be re-registered with IIS. The specific method depends on the operating system being used. For more information on ASP.Net and the IIS Registration tool, see the related links below.

Windows 2000/XP

To fix this on Windows 2000 or Windows XP, run this command from the Start>Run box or a command prompt (assuming the system directory is C:\Windows):

.Net 1.1: C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

.Net 2.0: C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

Windows 2003

On Windows 2003, ASP.NET must be both installed and enabled.  To install ASP.NET:

  1. On the taskbar, click the Start button, point to Control Panel, and then click Add or Remove Programs.
  2. In the Add or Remove Programs dialog box, click Add/Remove Windows Components.
  3. In the Components box in the Windows Components Wizard, click the Web Application Server check box, and then click Next.
  4. When the Windows Components Wizard has finished configuring Windows Server 2003, click Finish.

To enable ASP.NET, run this command from the Start>Run box or a command prompt (assuming the system directory is C:\Windows):

.Net 1.1: C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i -enable

.Net 2.0: C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i –enable

依據上文的參考操作:

1.先看看未安裝前的項目:

Server2003伺服器:未註冊ASP.NET v2.0.50727情況

VATWEB2008伺服器:已註冊ASP.NET v2.0.50727情況

擷取

2.接著於Server2003伺服器上依照上文操作,

輸入命令:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i –enable

擷取2

完成後就可以看到網頁服務延伸中,已經有ASP.NET v2.0.50727囉~~

用[執行]輸入指令開啟 IIS Manager

於執行輸入:inetmgr

擷取

即可開啟 IIS Manager

 

用CMD視窗指令,重啟IIS,開啟CMD視窗後,輸入 iisreset 即可

擷取

SSIS 敏感字眼加密方式

在使用SQL Server Business Intelligence Development Studio設計SSIS Package時,

如果Package中有儲存如DB登入之密碼...等敏感字眼。

通常預設會加密後保存,防止重要資訊外洩。

 

今天便要好好介紹內建的幾種加密方式

詳細內容亦可參考以下微軟文章 http://msdn.microsoft.com/zh-tw/library/ms141747.aspx

 

保護等級 描述

不要儲存機密資料 (DontSaveSensitive)

儲存封裝時,隱藏封裝中的機密屬性值。此保護等級不加密,但是會防止標記為機密資料的屬性與封裝一起儲存,因此其他使用者無法使用機密資料。如果其他使用者開啟封裝,則機密資訊會以空白取代,該使用者必須提供機密資訊。

dtutil 公用程式 (dtutil.exe) 搭配使用時,這個保護等級會對應至值 0。

所有資料都以密碼加密 (EncryptAllWithPassword)

使用密碼加密整個封裝。封裝是使用建立或匯出封裝時使用者提供的密碼來加密的。若要在「SSIS 設計師」中開啟封裝或使用 dtexec 命令提示公用程式執行封裝,使用者必須提供封裝密碼。如果沒有密碼,使用者就無法存取或執行封裝。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 3。

所有資料以使用者金鑰加密 (EncryptAllWithUserKey)

使用以目前使用者設定檔為基礎的金鑰加密整個封裝。只有建立或匯出封裝的使用者才可以在「SSIS 設計師」中開啟封裝,或使用 dtexec 命令提示公用程式執行封裝。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 4。

ms141747.note(zh-tw,SQL.100).gif附註:
對於使用使用者金鑰的保護等級,Integration Services 會使用 DPAPI 標準。如需有關 DPAPI 的詳細資訊,請參閱 MSDN Library,其網址為 http://msdn.microsoft.com/library

機密資料以密碼加密 (EncryptSensitiveWithPassword)

使用密碼僅加密封裝中的機密屬性值。DPAPI 用於此加密。機密資料會做為封裝的一部份進行儲存,但該資料會使用建立或匯出封裝時目前使用者所提供的密碼進行加密。若要在「SSIS 設計師」中開啟封裝,使用者必須提供封裝密碼。如果未提供密碼,則會開啟封裝但不提供機密資料,目前的使用者必須為機密資料提供新值。如果使用者嘗試在未提供密碼的情況下執行封裝,則封裝執行會失敗。如需有關密碼和命令列執行的詳細資訊,請參閱<dtexec 公用程式>。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 2。

機密資料以使用者金鑰加密 (EncryptSensitiveWithUserKey)

使用以目前使用者設定檔為基礎的金鑰,僅加密封裝中的機密屬性值。只有使用相同設定檔的相同使用者才可以載入封裝。如果其他使用者開啟封裝,則機密資訊會以空白取代,且目前的使用者必須為機密資料提供新值。如果使用者嘗試執行封裝,則封裝執行會失敗。DPAPI 用於此加密。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 1。

ms141747.note(zh-tw,SQL.100).gif附註:
對於使用使用者金鑰的保護等級,Integration Services 會使用 DPAPI 標準。如需有關 DPAPI 的詳細資訊,請參閱 MSDN Library,其網址為 http://msdn.microsoft.com/library

依賴伺服器儲存體進行加密 (ServerStorage)

使用 SQL Server 資料庫角色保護整個封裝。只有將封裝儲存到 SQL Server msdb 資料庫時,才支援此選項。將封裝從 Business Intelligence Development Studio 儲存到檔案系統時不支援此選項。

 

而開發預設加秘方式為 EncryptSensitiveWithUserKey,因此以User設定檔為Key加密。

但通常開發SSIS Package的為一台開發機。而實際執行之環境為另一台正式機。

所以User一定式不同的,導至每次開發完成的Package都需要於正式機上在開啟重新設定Password才可以正確運作等問題 !

擷取

Windows 2003 server 開啟 MSDTC 功能注意要點

1.請先確認Sql Server Integration Service 服務是否已有安裝!!!

2.開啟MSDTC功能,設定畫面如下

擷取

3.安裝 Network DTC 存取服務

擷取2

4.開啟防火牆例外設定

可於cmd視窗輸入命令:

netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable

開啟後畫面如下

擷取3

修改虛擬硬碟識別碼uuid

在使用VirtualBox時,將原本VirtualPC的虛擬硬碟檔案直接拿來掛載。

結果因為當初的硬碟檔都是Copy而來,導至所有硬碟檔案的識別碼UUID都是一樣的。

VirtualPC並不會認UUID,所以使用上都沒有什麼問題。

 

但在網路上看到大家說VirtualBox的效能比VirtaulPC、VMWare的效能還要好,就一直很想試看看!

試用後發現VirtualBox真的很威啊!!居然可以把VirtualPC的虛擬硬碟檔vhd,直接掛載起來使用。

實在是太方便了,所有虛擬硬碟都不需再另外轉檔或重做!

 

但卻發生了一個問題,因為當初所有vhd都是用copy衍生安裝出來的,所以所有的vhd的UUID都一樣。

而VirtualBox卻會去識別UUID,導至一次只能掛載上一個原有的vhd檔,在掛載就會出現如下錯誤訊息。

擷取

天阿!看到這訊息,心就涼了Orz…該不會…一次只能掛載一個原有vhd,要用別的,還需要先移除在重新掛載吧?!

 

接著只能上Goolge查查相關資訊,看是否可以有其他解決方式。

查著查著腦中突然閃過是否可以修改UUID的方式,如果可以,一切不就解了,便往這方向查詢了!

 

沒想到,原來VirtualBox早就做好這功能啦!!!真是太棒了~接趕快來做測試!

在VirtualBox的安裝目錄下有一個VBoxManage.exe,此工具含有許多功能,今天需要使用到的UUID變更功能。就要靠他來完成囉!!

 

先開啟命令提示字元視窗〈P.S. 如果是Vista or Win7,記得要按右鍵用系統管理員身分執行喔!!〉

並切換到VirtualBox的安裝目錄

擷取2

 

假設今天須變更的vhd檔案之完整檔案路徑為【E:\02Project\FISC\DevelopEnvironment\fisc2009.vhd】

則輸入命令:VBoxManage internalcommands sethduuid E:\02Project\FISC\DevelopEnvironment\fisc2009.vhd

擷取3

重點就在下方幾行字了!!!UUID changed to :  …………………

哈哈哈!成功啦,已經將原本vhd的UUID變更成功囉~~~

 

接下來就安安心心的虛擬硬碟vhd掛載起來用吧 ^+++^

這樣就可以輕鬆的由VirtualPC轉換成VirtualBox使用囉~