2016年4月14日 星期四

INTERSECT 的語法和 UNION 指令
INTERSECT 的語法和 UNION 指令類似,INTERSECT 也是對兩個 SQL 語句所產生的結果做處理的。不同的地方是, UNION 基本上是一個 OR (如果這個值存在於第一句或是第二句,它就會被選出),而 INTERSECT 則 比較像 AND (這個值要存在於第一句和第二句才會被選出)。UNION 是聯集,而 INTERSECT 是交集。

2016年4月13日 星期三

查詢是否有啟用 XACT_ABORT 選項

在設計交易程式時,可以利用 XACT_ABORT 選項,指定當 Transact-SQL 陳述式產生執行階段錯誤時,SQL Server 是否自動回復目前的交易。
依據預設值,每個連線並未啟用 XACT_ABORT。

所以有朋友詢問,要如何檢視是否有啟用 XACT_ABORT 呢?
建議:可以利用 DBCC USEROPTIONS:傳回目前連接在使用中 (已設定) 的 SET 選項。 
請參考以下 範例碼:
USE master
GO

/*
DBCC USEROPTIONS
傳回目前連接在使用中 (已設定) 的 SET 選項。
*/
-- 預設僅顯示有啟用的SET 選項。未啟用的選項,並不會顯示出來。
DBCC USEROPTIONS;

-- 啟用 SET XACT_ABORT ON
/*
當 SET XACT_ABORT 是 ON 時,如果 Transact-SQL 陳述式產生執行階段錯誤,就會終止和回復整個交易。

當 SET XACT_ABORT 是 OFF 時,在某些情況下,只會回復產生錯誤的 Transact-SQL 陳述式,交易會繼續進行。
隨著錯誤嚴重性而不同,即使 SET XACT_ABORT 是 OFF,也有可能回復整個交易。OFF 是預設值。

SET XACT_ABORT 不會影響到如語法錯誤之類的編譯錯誤。
*/
SET XACT_ABORT ON

-- 多增加一筆記錄,有顯示 XACT_ABORT。

DBCC USEROPTIONS;

2016年4月12日 星期二

SQL 2005移除步驟

1.備份資料:這是首要工作喔!。

2.停止所有的SQL SERVER服務:避免在移除過程中,SQL SERVER仍在執行導致無法正確移除。從「我的電腦」→「右鍵」→「管理」→「服務」把所有SQL SERVER的服務停止。

3.執行ARPWrapper.exe /Remove:

4.在命令提示字元下,輸入”cd C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\ARPWrapper.exe /Remove”。(如果有安裝Expreee版本,請再執行一次)。

5.勾擇移除所有SQL SERVER 2005相關檔案。移除時間會有點長。

6.執行”新增/移除程式”:移除完成後再將「控制台」→「新增移除程式」→「Microsoft SQL Server Native Client 元件」解除安裝;

7.移除完成:所有的SQL SERVER 2005就算移除完畢囉!