F2 → SECURITY BOOT CONTROL → 【DISABLE】
Fast Boot→【DISABLE】, 然後按 "F10" 儲存並離開
重新按 F2 → BOOT → LAUNCH CSM →【ENABLE】
F10 儲存並離開後, 按 "ESC" 就可以找到 Boot 選單.
"切記"
不要選到 UEFI 的光碟或隨身碟, Windows 7 無法支援.
2014年7月14日 星期一
WIN8轉WIN7 ASUS 筆電
隨機預裝Win8的電腦,硬碟爲GPT格式的,如果需要安裝Win7等早期版本系統,需要轉換爲MBR格式的,使用Diskpart命令即可完成轉換。
操作步驟:
注意:轉換硬碟格式需要清空硬碟中的所有分區和數據,在操作前,請保存好硬碟中所有重要數據。
1.使用Win7光碟或者USB引導,進入系統安裝界面。
2.按Shift + F10打開命令提示符。
3.輸入”Diskpart”(不用輸入引號,下同),並ENTET,進入操作界面
4.輸入:”list disk”,查看硬碟信息。
5.輸入:”select disk 0”,選擇disk 0爲當前操作的硬碟。
6.輸入:”Clean”,清空當前硬碟分區。
7.輸入:”convert mbr”,轉換爲MBR分區。
8.操作完成,關閉此命令提示符窗口,繼續按照正常的方法安裝Win7系統即可。
擴展知識:convert命令的其它用法:
convert basic -將硬碟從動態轉換爲基本。
convert dynamic -將硬碟從基本轉換爲動態。
convert gpt -將硬碟盤從MBR轉換爲GPT。
convert mbr -將硬碟從GPT轉換爲MBR。
在Windows 7和VISTA裡,分區工具中出現了一種新的分區格式(GPT),它與以往的MBR分區格式有什麼不同呢?下邊我來介紹一下這個分區格式,微軟建議有2TB以上硬碟的朋友使用此分區,所以大家就當充電吧。不要盲目嘗試啊。如果有多個分區的話,GPT格式的硬碟可能無法 在XP中識別出來。
GPT全稱:Globally Unique Identifier Partition Table Format
一種由基於 Itanium 電腦中的可延伸韌體介面 (EFI) 使用的磁碟分割架構。與主開機記錄 (MBR) 分區方法相比,GPT 具有更多的優點,因為它允許每個磁片有多達 128 個分區,支援高達 18 千兆百萬位元組的卷大小,允許將主要磁碟分區表和備份磁碟分割表用於冗餘,還支援唯一的磁片和分區 ID (GUID)。
與支持最大卷為 2 TB (terabytes) 並且每個磁片最多有 4 個主要磁碟分割(或 3 個主要磁碟分割,1 個擴展分區和無限制的邏輯磁碟機)的主開機記錄 (MBR) 磁碟分割的樣式相比,GUID 分區表 (GPT) 磁碟分割樣式支援最大卷為 18 EB (exabytes) 並且每磁片最多有 128 個分區。與 MBR 分區的磁片不同,至關重要的平臺運算元據位於分區,而不是位於非分區或隱藏磁區。另外,GPT 分區磁片有多餘的主要及備份分區表來提高分區資料結構的完整性。
在“磁片管理”中的磁片屬性對話方塊中的“卷”選項卡上,具有 GPT 分區樣式的磁片顯示為 GUID 分區表 (GPT) 磁片,而具有 MBR 分區樣式的磁片顯示為主開機記錄 (MBR) 磁片。如果發生下列意外事件,可以在 GPT 磁片上執行 MBR 磁片支援的操作:
在運行帶有 Service Pack 1 (SP1) 的 Windows Server 2003 的基於 x86 的電腦和基於 x64 的電腦上,作業系統必須駐留在 MBR 磁片上。其他的硬碟可以是 MBR 或 GPT。
在基於 Itanium 的電腦上,作業系統載入程式和開機磁碟分割必須駐留在 GPT 磁片上。其他的硬碟可以是 MBR 或 GPT。
不能將 GPT 移至運行 Windows NT 4.0、Windows 2000、Windows XP 或 Windows Server 2003 的基於 x86 的電腦上。不過,可以將 GPT 磁片從運行帶有 SP1 的 Windows Server 2003 的基於 x86 的電腦或基於 x64 的電腦移至運行 Windows Server 2003 或 Windows XP 的基於 Itanium 的電腦上,反之亦然。
不能使用基於 Itanium 的 Windows 版本,將 GPT 磁片從基於 Itanium 的電腦移至運行帶有 SP1 的 Windows Server 2003 的基於 x86 的電腦或基於 x64 的電腦,然後啟動該作業系統。在非基於 Itanium 的電腦上使用的 GPT 磁片必須僅用於資料存儲。
在單個動態磁片組 中既可以有 MBR,也可以有 GPT 磁片。也使用將基本 GPT 和 MBR 磁片的混合,但它們不是磁片組的一部分。可以同時使用 MBR 和 GPT 磁片來創建鏡像磁碟區、帶區卷、合併磁碟區和 RAID-5 卷,但是 MBR 的柱面對齊的限制可能會使得創建鏡像磁碟區有困難。通常可以將 MBR 的磁片鏡像到 GPT 磁片上,從而避免柱面對齊的問題。
可以將 MBR 磁片轉換為 GPT 磁片,並且只有在磁片為空的情況下,才可以將 GPT 磁片轉換為 MBR 磁片。
不支持 EFI 系統磁碟分割的鏡像。必須使用 bootcfg 命令克隆 EFI 系統磁碟分割。
不能在可移動媒體,或者在與群集服務使用的共用 SCSI 或 Fibre Channel 匯流排連接的群集磁片上使用 GPT 分區樣式。
可 以使用 DiskPart.exe 命令列實用程式或 EFI 固件實用程式 Diskpart.efi 在基本 GPT 磁片上創建分區。有關 DiskPart.exe 的詳細資訊,請參閱 DiskPart。有關“磁片管理”管理單元的詳細資訊,請參閱磁片管理概述。有關 Diskpart.efi 的詳細資訊,請參閱 Intel 網站。
在基於 Itanium 的電腦上的系統恢復方案中,請參閱電腦所附帶的製造商文檔來重新創建或恢復 GPT 磁片。
有關管理 GPT 和 MBR 磁片的詳細資訊,請參閱可延伸韌體介面 或 Microsoft Windows 資源工具包網站上的“Disk Management”(磁片管理)。
來源:網路
操作步驟:
注意:轉換硬碟格式需要清空硬碟中的所有分區和數據,在操作前,請保存好硬碟中所有重要數據。
1.使用Win7光碟或者USB引導,進入系統安裝界面。
2.按Shift + F10打開命令提示符。
3.輸入”Diskpart”(不用輸入引號,下同),並ENTET,進入操作界面
4.輸入:”list disk”,查看硬碟信息。
5.輸入:”select disk 0”,選擇disk 0爲當前操作的硬碟。
6.輸入:”Clean”,清空當前硬碟分區。
7.輸入:”convert mbr”,轉換爲MBR分區。
8.操作完成,關閉此命令提示符窗口,繼續按照正常的方法安裝Win7系統即可。
擴展知識:convert命令的其它用法:
convert basic -將硬碟從動態轉換爲基本。
convert dynamic -將硬碟從基本轉換爲動態。
convert gpt -將硬碟盤從MBR轉換爲GPT。
convert mbr -將硬碟從GPT轉換爲MBR。
在Windows 7和VISTA裡,分區工具中出現了一種新的分區格式(GPT),它與以往的MBR分區格式有什麼不同呢?下邊我來介紹一下這個分區格式,微軟建議有2TB以上硬碟的朋友使用此分區,所以大家就當充電吧。不要盲目嘗試啊。如果有多個分區的話,GPT格式的硬碟可能無法 在XP中識別出來。
GPT全稱:Globally Unique Identifier Partition Table Format
一種由基於 Itanium 電腦中的可延伸韌體介面 (EFI) 使用的磁碟分割架構。與主開機記錄 (MBR) 分區方法相比,GPT 具有更多的優點,因為它允許每個磁片有多達 128 個分區,支援高達 18 千兆百萬位元組的卷大小,允許將主要磁碟分區表和備份磁碟分割表用於冗餘,還支援唯一的磁片和分區 ID (GUID)。
與支持最大卷為 2 TB (terabytes) 並且每個磁片最多有 4 個主要磁碟分割(或 3 個主要磁碟分割,1 個擴展分區和無限制的邏輯磁碟機)的主開機記錄 (MBR) 磁碟分割的樣式相比,GUID 分區表 (GPT) 磁碟分割樣式支援最大卷為 18 EB (exabytes) 並且每磁片最多有 128 個分區。與 MBR 分區的磁片不同,至關重要的平臺運算元據位於分區,而不是位於非分區或隱藏磁區。另外,GPT 分區磁片有多餘的主要及備份分區表來提高分區資料結構的完整性。
在“磁片管理”中的磁片屬性對話方塊中的“卷”選項卡上,具有 GPT 分區樣式的磁片顯示為 GUID 分區表 (GPT) 磁片,而具有 MBR 分區樣式的磁片顯示為主開機記錄 (MBR) 磁片。如果發生下列意外事件,可以在 GPT 磁片上執行 MBR 磁片支援的操作:
在運行帶有 Service Pack 1 (SP1) 的 Windows Server 2003 的基於 x86 的電腦和基於 x64 的電腦上,作業系統必須駐留在 MBR 磁片上。其他的硬碟可以是 MBR 或 GPT。
在基於 Itanium 的電腦上,作業系統載入程式和開機磁碟分割必須駐留在 GPT 磁片上。其他的硬碟可以是 MBR 或 GPT。
不能將 GPT 移至運行 Windows NT 4.0、Windows 2000、Windows XP 或 Windows Server 2003 的基於 x86 的電腦上。不過,可以將 GPT 磁片從運行帶有 SP1 的 Windows Server 2003 的基於 x86 的電腦或基於 x64 的電腦移至運行 Windows Server 2003 或 Windows XP 的基於 Itanium 的電腦上,反之亦然。
不能使用基於 Itanium 的 Windows 版本,將 GPT 磁片從基於 Itanium 的電腦移至運行帶有 SP1 的 Windows Server 2003 的基於 x86 的電腦或基於 x64 的電腦,然後啟動該作業系統。在非基於 Itanium 的電腦上使用的 GPT 磁片必須僅用於資料存儲。
在單個動態磁片組 中既可以有 MBR,也可以有 GPT 磁片。也使用將基本 GPT 和 MBR 磁片的混合,但它們不是磁片組的一部分。可以同時使用 MBR 和 GPT 磁片來創建鏡像磁碟區、帶區卷、合併磁碟區和 RAID-5 卷,但是 MBR 的柱面對齊的限制可能會使得創建鏡像磁碟區有困難。通常可以將 MBR 的磁片鏡像到 GPT 磁片上,從而避免柱面對齊的問題。
可以將 MBR 磁片轉換為 GPT 磁片,並且只有在磁片為空的情況下,才可以將 GPT 磁片轉換為 MBR 磁片。
不支持 EFI 系統磁碟分割的鏡像。必須使用 bootcfg 命令克隆 EFI 系統磁碟分割。
不能在可移動媒體,或者在與群集服務使用的共用 SCSI 或 Fibre Channel 匯流排連接的群集磁片上使用 GPT 分區樣式。
可 以使用 DiskPart.exe 命令列實用程式或 EFI 固件實用程式 Diskpart.efi 在基本 GPT 磁片上創建分區。有關 DiskPart.exe 的詳細資訊,請參閱 DiskPart。有關“磁片管理”管理單元的詳細資訊,請參閱磁片管理概述。有關 Diskpart.efi 的詳細資訊,請參閱 Intel 網站。
在基於 Itanium 的電腦上的系統恢復方案中,請參閱電腦所附帶的製造商文檔來重新創建或恢復 GPT 磁片。
有關管理 GPT 和 MBR 磁片的詳細資訊,請參閱可延伸韌體介面 或 Microsoft Windows 資源工具包網站上的“Disk Management”(磁片管理)。
來源:網路
2014年5月20日 星期二
SQL指令-By towns
很多時候,都需要使用到指令、語法來管理MS SQL資料庫,但通常都是記不住的,寫下來便於使用,至於管理,towns是很遜的,很多時候都是土法鍊鋼,一點一點做 ^^"
1. 指令管理資料庫關閉與啟動
net stop mssqlserver /y <==使用net 指令停止mssqlserver服務,並同時同意停止其他相關服務
net start sqlserveragent <==使用net 指令啟動sqlserveragent服務,系統會自動將mssqlserver 啟動
net stop 及 start 主要是用來停止與啟動系統中的服務,所有的服務都可以透過這樣的方式來管理,另一個towns常用的是IIS的管理。
注意:後面加的服務名稱並不是在“服務”中的“顯示名稱”,而是“服務名稱”
2. 列出abc所有的table
sp_tables @table_name = '%',@table_owner = 'dbo',@table_qualifier = 'abc'
sp_tables @TABLE_TYPE= "'table'" <== 列出所有table 名稱
sp_tables @table_name = '%' <== 列出所有table及veiw 名稱
3. 選擇所有欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,顯示所有欄位)
select * from abcd where cdef = 'towns'
選擇cdef,aaa欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,只顯示兩欄位)
select cdef,aaa from abcd where cdef ='towns'
4. 查尋資料庫版本
select @@version
5. 刪除特定資料表
delete from abc <==刪除abc資料表中的資料
delete
FROM abc
WHERE (abcde > '2013-03-07 15:37:00')
and abcde < '2013-03-07 15:57:00'
刪除abc資料表中 欄位abcde時間為 2013-03-07 15:37:00 ~ 15:57:00間的資料
6. MSSQL 2005 資料庫 <==> MSSQL 2005 Express 資料庫
MSSQL 2005 Express ==> MSSQL 2005。直接附加即可
MSSQL 2005 ==> MSSQL 2005 Express
1. 由MSSQL 2005 匯出資料庫結構。在指定資料庫按滑鼠右鍵==>工作==>產生指令碼==>下一步==>確認是否為選擇的資料庫,下一步==>在選擇指令碼選項中,不需做特別修改,下一步==>選擇物件類型,僅選擇資料表及檢視,下一步==>選擇資料表,全選,下一步==>選擇檢視,全選,下一步==>輸出選項,這裡依需求選擇,下一步(towns多選寫指令碼至檔案),下一步==>設定檔名及路徑
,存檔,下一步==>完成
註:對該資料庫需要有存取權限,如果只有讀取權限,匯出時會出現錯誤
2. 將結構檔匯入 MSSQL 2005 Express。開啟Managemant==>檔案==>開啟==>檔案==>選擇剛剛匯出的檔案==>這時系統會要求打入帳密(確認連結的資料庫是否正確,帳密需有寫入權限)==>此時結構語法已載入==>點入語法,並確認要載入的資料庫是否正確(系統會預設載入為master)==>執行==>結構載入
3. 將資料匯入 MSSQL 2005 Express。
3.1.連結資料庫匯入
開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(確認目的地及登入資料,這裡需有寫入權限)==>指定資料表複製或查詢,towns通常是要複製,選從一或多個資料表或檢視複製資料,下一步==>全選所有的資料表及檢示,編輯,選刪除資料表中的資料列,並取消檢視,下一步==>立即執行==>確認工作==>完成
3.2.可用匯出檔案方式,將資料再匯入。
開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(選擇excel)==>選擇匯出路徑並打入檔案名稱==>地區設定及字碼頁需依資料庫編碼決定 ==>從一或多個資料表或檢視複製資料 ==>下一步(這裡towns使用預設值)
注意事項:做匯出匯入的動作是非常危險的,方向一錯資料就不見了,建議在執行時,該備份的一定要先備份,不要嫌麻煩
技術指導:藍色小舖資深工程師 IZAN
補充說明:最近一次的測試,是可以直接使用MSSQL 2005 ent 備份出來的檔案,直接還原到 MSSQL 2005 Express版 中SQL Server Management Studio Express為 SP3版
7. MS SQL 2005 TCP/IP協定啟用
到開始Microsoft SQL 2005==>組態工具==>進入 SQL Server組態管理員(有些會出現英文)==>選擇 SQL Server 2005 網路組態==> 這裡可能會出現SQL及SQLEXPRESS,看哪個要開就開哪個 ==>選擇TCP/IP ==>IP位址==>確認IPALL中TCP通訊埠,是否有開起埠號(如預設值1433),在開啟後,要重新啟動SQL Server的服務,並使用netstat -an來檢查是否有開啟1433 port
8. 加快資料庫讀取速度,利用先將資料庫放到記憶體中,加快讀取速度
相關資料:http://blog.miniasp.com/post/2009/11/SQL-Server-Performance-Tuning-Caching-commonly-used-tables.aspx(感謝will大無私分享)
9. 在MSSQL資料庫轉移時,常常會遇到的問題
9.1. 資料庫使用還原或附加後,因為使用者不存在而造成網站無法正確讀取資料庫( 如圖nouser),此時需刪除並重建使用者
9.2. 要刪除使用者,重建時,發生使用者無法刪除,導致無法重建該使用者。常見原因有
9.2.1. 在該資料庫==>安全性==>結構描述中,有該使用者的名稱
處理方式:到結構描述中,將該使用者刪除,如果無法刪除,就與下面兩點有關
9.2.2. 在該資料庫==>資料表==>結構描述中,有該使用者的名稱(如圖table)
9.2.3. 在該資料庫==>檢示==>結構描述中,有該使用者的名稱(如圖view)
2000處理方式:手動將結構描述改為dbo
開啟SQL Server Enterprice Manager==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計資料表==>按左上方“資料表與索引屬
性”(如圖property)==>變更擁有者為dbo(如圖property-1),存檔==>擁有者就改為dbo,就可
刪除帳號即可
2005處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2005property),存檔==>擁有者就改為dbo,就可刪除帳號即可
2008處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2008property),存檔==>擁有者就改為dbo,就可刪除帳號即可
註:SQL Server Management Studio 預設並不開啟屬性視窗,按F4就可開啟
技術指導:藍色小舖資深工程師 IZAN
補充:使用者擁有預存程序(如圖storedprocedure2),這個也會造成無法刪除使用者的問題,這時必須重建預設程序才能解決該問題。在預存程序上按滑鼠右鍵==>編寫預存程序指令碼為==>CREATE至==>產生指令碼,再將指令碼中的擁有者改為dbo,刪除該程序後重建這個預存程序。
技術指導:tina
10. 當同台主機安裝了多個MSSQL(如有有安裝2000、2005 Express、2005等)要注意
10.1.在進入SQL時,要選擇正確的版本
10.2.在新增帳號時,請使用2005來新增及指定資料庫,否則會發生帳號無法正常讀取的問題
11. 從 abcd 資料表中cdef 欄,找出有張及張*文的字串(兩條件模糊搜尋)
select * from abcd where (cdef LIKE '張%') OR (cdef LIKE '張%文')
12. 查詢T-SQL語法
sp_help
13. 列出資料庫清單,列出後再使用右鍵儲存結果為單一 CSV檔
13.1. 列出資料庫所有狀態
sp_helpdb
13.2. 僅列出資料庫名稱
USE master
SELECT dbid, DB_NAME(dbid) AS DB_NAME
FROM sysdatabases
ORDER BY dbid
資料來源:blues及tina口述
14. 查看每一個SQL語法的使用記錄
使用SQL Server Profiler 中新增追蹤,可以看到資料庫正在存取的情形
read ==>讀取硬碟資料筆數
write ==>寫入硬碟資料筆數
duration ==>經過時間,時間太長就表示讀取/寫入硬碟資料時很長,這是造成資料庫回應緩慢的原因(1000=1秒)
技術指導:藍色小舖資深工程師 IZAN
15. access 2007與資料庫連結(圖解)
1. 匯入mssql 資料:外部資料==>其他==>ODBC資料庫(如圖mdb1.jpg)
2. 選擇匯入方式,第一項為將資料cp一份到電腦中,第二項為連結同步,取得最新資料(如圖mdb2.jpg)
3. 選擇資料來源,請新增一個 DSN資料來源(如圖mdb3.jpg)
4. 選擇 SQL server 下一步(如圖mdb4.jpg),將DSN指定存放位置及設定名稱 下一步(如圖mdb5.jpg)
5. 與伺服器建立連結,打入伺服器名稱或IP(如圖mdb6.jpg)
6. 選擇連入帳戶,選擇第二項者,需打入帳號及密碼(如圖mdb7.jpg)
7. 指定取得資料庫,勾選變更預設資料庫即可選擇(如圖mdb8.jpg)
8. 這一塊使用預設值,不需變更(如圖mdb9.jpg),summary(如圖mdb10.jpg),完成後需打入帳密登入資料庫(如圖mdb11.jpg)
9. 選擇要匯入的 table(如圖mdb12.jpg),完成匯入
補充:關於access 2010新檔案格式問題
當使用access 2010匯出資料並存檔時,檔案格式為 *.accdb,如果要將檔案存為 *.mdb,需使用 儲存並發佈 的方式,這時就可以將檔案另存成 mdb格式了
16. 關於資料庫 ldf 檔非常大,但卻無法壓縮的問題
towns管理的伺服器中,有些資料庫的Log檔,實在是大的離譜,但在執行備份壓縮後,卻不見Log檔變小(如圖mssqlLog2.jpg),雖然說可用空間明顯加大(如圖mssqlLog.jpg),但檔案事實上是沒變小的,目前towns 將自動壓縮功能啟用(如圖mssqlLog3.jpg)並執行排程備份壓縮,是否能成功將 ldf 檔變小,今天晚上就可以知道了。
很可惜,ldf 檔並沒有變小,看來在動作中的資料庫,要壓縮是個問題呢
16.1.經過IZAN指導,要連續兩次壓縮,才能將ldf 檔變小,而且必需使用維護計畫來執行才能有效壓縮,可以先做一次手動備份LDF檔,再用計畫做備份壓縮,也可以有效處理
16.2.不需要設定自動壓縮功能(如圖mssqlLog3.jpg),也能有效壓縮
技術指導:藍色小舖資深工程師 IZAN
相關資料:http://ithelp.ithome.com.tw/question/10028911
補充1:LDF 檔有多大,就需要給他一個多大的空間來備份,如LDF約10GB,硬碟空間就要 > 10GB
補充2:使用T-SQL指令處理
T-SQL語法如下:
1. 截斷交易記錄檔:將資料庫「復原模式」改為「簡單」,即可即斷交易記檔
T-SQL:ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE
2. T-SQL:SP_HELPDB 資料庫名稱 此時可查得 ldf 檔對應到的邏輯名稱(name),一般會是"資料庫名稱_log",但若之前是從備份資料還原到不同名稱的資料庫,邏輯名稱(name)就可能不一樣。
壓縮交易記錄檔
3. 執行以下指令後,應該可以發現ldf的檔案大小縮小成2MB
T-SQL:use 資料庫名稱 GO DBCC SHRINKFILE('ldf的邏輯名稱',2)
4. 將資料庫「復原模式」改回「完整」
T-SQL: ALTER DATABASE 資料庫名稱 SET RECOVERY FULL
資料來源:jiankai 大筆述
17. 從 abcd 資料表中所有的欄位找出 cdef 欄,並找有 1 或 2 字串的資料(同時搜尋兩條件)
SELECT * FROM abcd WHERE (cdef = '1') OR (cdef = '2')
18. 從 abcd 資料表中所有的欄位找出 cdef 欄,去除有 1 或 2 字串的資料(同時去除兩條件)
SELECT * FROM abcd WHERE not(cdef = '1' OR cdef = '2')
SELECT * FROM abcd where cdef not in ('1','2')
資料來源:IZAN 及 TINA
19. 從 abcd 資料表中所有的欄位找出 cdef 欄為空值的資料
SELECT * FROM abcd WHERE (cdef = '')
20. 統計abcd 資料表筆數
select count(*) from abcd
資料來源:Blues
21. 從abcd 資料表中列出前 N 筆 cdef 欄 資料(僅顯示cdef 欄資料)
select top ( N ) cdef from abcd
從abcd 資料表中列出前 N 筆資料
select top ( N ) * from abcd
資料來源:Blues
22. 從abcd 資料表中抓取 cdef 欄及ghij 資料
select cdef,ghij from abcd
23. 索引片段過多會導致資料庫讀取該table效能變差
查看索引片段情形與頁面使用飽和度
進入資料庫==>選定特定資料庫==>資料表==>選定特定資料表==>索引==>點開看該叢集==>滑鼠右鍵點屬性==>選擇片段==>這裡就可以看到片段總計及頁面飽和度
24. T-SQL指令變更資料型別
ALTER TABLE abc
ALTER COLUMN abcuid Varchar (20) NOT NULL;
變更資料表 abc中的資料欄 abcuid 的欄位長度為 20
技術提供:blues
25. 清空特定資料庫語法。這個語法會特定資料庫中的資料完全清除
TRUNCATE TABLE table_name
26. MS-SQL 語法教學站台
http://www.1keydata.com/tw/sql/sql.html
27. MS-SQL 2000 問題
當使用windws 2003 server 安裝 MS-SQL 2000,SQL 版本為 SP2或更舊,這時會造成 TCP/IP 通訊協定無法開啟的問題,這時請將SQL 2000更新到 SP4版,這個問題就會解決,詳細資料可見事件檢視器==>應用程式
28. MS-SQL 2008 無法直接編輯資料的修改方式
2k8基於安全性考量,management studio預設的編輯功能為唯讀,導致無法編輯欄位內容、欄位格式等等,需到工具 ==>選項 ==>Desigeners ==>資料表和資料庫設計工具 ==>取消“防止存儲需要資料表重建的變更”,這樣就可以編輯了
資料來源:小舖工程師 jainkai
29. MS-SQL 2000的查詢頁面
ms-sql 2000中並沒有新增查詢的項目,以提供語法寫入,需要到 工具 ==> sql query analyzer 才會開啟語法寫入頁面
註:要指定資料庫
30. 帳號權限管理
30.1. 限制讀取指定資料表(table)
建立帳號test ==>在指定資料庫(abcd),安全性中加入使用者test ==>但不提供“資料庫角色成員資格”==>到指定table(tbAabc)上按滑鼠右鍵==>屬性 ==>權限 ==>點下 搜尋 ==>瀏覽 ==>勾選指定帳號(test)==>到下表中勾選test的權限,這裡依需求勾選,towns只勾授與“選取”。設定完成後,test帳號就只能看到這個table 並對這個table執行選取的指令了
刪除方式:直接於指定資料庫安全性中刪除該使用者
31. 主機名稱與MSSQL問題
當我們在安裝完MSSQL後再變更主機名稱,會發生維護計畫無法使用的問題,因為MSSQL會抓取舊主機名稱,造成執行權限不正確,導致維護計畫無法使用,這個問題可以在事件檢視器中看到。
處理方式:打入新主機名稱或使用IP連接資料庫
32. 建立資料庫
與ACCESS、Excel表很類似,不過通常需要加上主索引
主索引 自行設定名稱 類型 bigint,自動編號 請將識別規格改為 是
資料行 自行設定名稱 類型 nchar,並設定字數
33. 單一table大小可以在該table上面按滑鼠右鍵==>屬性==>儲存體,這裡就可以看到他使用的索引空間大小,資料空間大小
34. 取出大於等於1000的數值資料
select * from abcd where defg >= 1000
註:defg欄位必需為數值資料
35. MSSQL 2008 安裝失敗
系統:windows 2008 R2 std sp1
MSSQL:MSSQL 2008 R2 ent
在安裝過程中出現了“效能計數器登入區一致性:失敗”
點選失敗後,會請我們到指定網站參考微軟的說明
連到官網後,看了一下資料,說真的以towns的資質,實在是看不懂這個文章在寫什麼,更不知道怎麼下手處理問題,但towns有在伺服器廠商安裝系統時,有發現他們使用的是英文版OS,這個也造成了系統的區域資料異常。towns 試著到 控制台==>時鐘、語言和區域中查看,發覺在 系統管理==>非Unicode程式的語言,這裡寫的是“英文(美國)”,這個資訊顯然是錯誤的,towns 將他改為“中文(繁體、台灣)後,就可以正常安裝mssql了,還好這樣就可以了,官網資料實在是太難懂了= =
發覺這個問題,是因為在cmd模式下,會出現亂碼
36. MSSQL 語法,選取時間格式
方法一
SELECT *
FROM abc
WHERE DATEPART(yy, d_date) = 2010 AND DATEPART(mm, d_date) = 12 AND DATEPART(dd, d_date) = 31
方法二(選取時間區間)
SELECT *
FROM abc
WHERE d_date BETWEEN '2010-12-31 00:00:00' AND '2010-12-31 23:59:59'
資料來源:blues大師口述
方法三(選取時間區間)
SELECT *
FROM abc
WHERE d_date < '2010-12-31 00:00:00'
37. 關於LDF檔異常長大的原因
使用索引重建,會造成LDF檔變大,如果有需要重建,建議先看看LDF檔是否很大了,如果很大,要先壓縮後再執行
38. MS-SQL 2008 使用備維護計劃排定自動備份發生失敗問題
towns架設的一台SQL-server發生了自動備份失敗問題,系統會提示查看記錄檔,因為towns的計劃中,有多個子計劃,所以要開記錄檔,要到Agent中查看,錯誤圖片(sqlbkerr.jpg)
查看記錄檔:到SQL Server Agent ==> 作業 ==> 到指定的作業中按滑鼠右鍵 ==> 點 檢視記錄
在記錄中看到以下錯誤,這個問題應該是安裝時少裝了Integration Services造成
39. 更新統計資料及更新使用方式計數器
在SQL 2000中容易發生因為資料庫轉移或昇級後,資料庫讀取延遲的問題,我們需要更新更新統計資料及更新使用方式計數器
更新統計資料語法
USE [資料庫];
GO
EXEC sp_updatestats
更新使用方式計數器
USE [資料庫]
DBCC UPDATEUSAGE (0);
GO
資料來源:kelly大師
40. MS-SQL 混合驗證模式(2005)
在安裝MSSQL 的過程中,可以選SQL server驗證或windows驗證模式,如果選了windows驗證模式,他就不需要打入sa的密碼,這也會造成之後使用SQL Server Management Studio,無法使用 SQL server驗證 模式登入,就算是建了一個帳號,也無法登入。如果要開放 SQL server驗證 登入,有兩個步驟
1. 使用 SQL Server Management Studio 登入後,在 物件總管,伺服器名稱上按滑鼠右鍵 ==> 屬性 ==> 安全性 ==> 伺服器驗證,點選 SQL server驗證及windows驗證模式,完成後重新啟動 SQL
2. 使用 ALTER LOGIN 語法,啟用sa 帳號,在password後面請自行打入sa 密碼
ALTER LOGIN sa ENABLE ;
GO
ALTER LOGIN sa WITH PASSWORD = '' ;
GO
完成上述兩步驟後,就可以使用 SQL server驗證 模式登入了
資料來源:http://missice.pixnet.net/blog/post/24136664-ms-sql-server-%E8%AE%8A%E6%9B%B4%E4%BC%BA%E6%9C%8D%E5%99%A8%E9%A9%97%E8%AD%89%E6%A8%A1%E5%BC%8F missice大的blog
註:towns在設時,沒有注意到sa 帳號是否存在,如果存在,第二步驟是否可以用滑鼠啟用sa 帳號就達成了呢?^^ 如果有朋友遇到,再試一下結果,可以的話也告訴towns哦!^^
41. 資料備份還原問題
towns 習慣使用備份還原方式來轉移資料庫,好處是資料完整、結構完整。缺點是 1.不同版本的資料庫還原會出問題(如2k8還原到2k3或2k8 R2還原到 2k8),2. 帳號會同時還原進來,需刪除重建。
問題一處理方式:
1. 將結構及資料同時匯出為語法(以2k8 R2為例)
開啟SQL Server Management ==> 指定資料庫 按滑鼠右鍵 ==> 工作 ==> 產生指令碼 ==> 下一步 ==> 這裡可以依需求選擇 完整指令碼或選取特定資料庫物件指令碼 ==> towns 只需要資料表 ==> 輸出類型 選將指令碼儲存到特定位置,儲存至檔案,單一檔案,點選進階,將 要編寫的指令類型選擇,選擇結構描述及資料(這個選擇有三種,依需求選,也可以選擇單一資料表),指定檔名及存放位置 ==> 下一步 ==> 下一步 ,就會開始編寫指令碼了。產生的指令碼,就可以在多數MSSQL版本中使用
註1:在2k8中,點選進階,將 編寫資料指令碼 設為 True
2. 請參考第9點
42. 在執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形
towns在一次執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形,這時網站是無法正常讀取資料庫的,必需使用語法,讓資料庫狀態回到一般,才能正常讀取
處理方式:
使用語法
RESTORE DATABASE [資料庫名稱]
WITH RECOVERY
後,再重整資料庫,就會回到一般狀態
資料來源:德瑞克大的blog http://sharedderrick.blogspot.tw/2008/12/sql-server-restoring.html
43. MSSQL 2008 R2 資料庫 ==> MSSQL 2008 資料庫
這是41點的補充,單純說明 2k8 R2 ==> 2k8
在41點 towns 說明了將資料及結構同時匯出的方式,但這次做了這個動作,出來的sql檔有1GB之大,這會連將檔案傳到主機都成問題,而且,也不能保證能寫入資料庫,這次的方式是使用匯出匯入方式 ,直接將資料及結構產生
流程:
1. 建立一台MSSQL 2K8 R2主機,並還原資料庫
2. 於目標主機中新增指定資料庫,此時資料庫是空的
3. 使用匯入匯出方式,將新資料匯入目標主機中的指定資料庫,並新增結構。此時不要將view表一併匯入
4. 使用匯出匯入方式,將view表結構匯出
5. 到目標主機中,使用語法產生view表結構
6. 建立帳號
這樣的做法可以減少因型態不同、驗證錯誤所產生資料庫匯出匯入的問題
44. 只使用MDF檔來還原資料庫的方式
資料來源:UBLink技術團隊討論區 Kao大 回應 http://ns2.ublink.org/phpbb/viewtopic.php?t=1637
towns一字不漏的將Kao大的回應直接放上來,主要是為了避免towns修改後出現錯誤。如不適合放於此,請通知towns刪除,謝謝 ^^
當資料庫缺少了交易記錄檔時
1.在 SQL 2000 時請利用附加資料庫的方式重新Create 交易記錄檔
2.在 SQL 2005 是亦是利用附加資料庫的方式但在附加時要將對話框的交易檔路 徑刪除即可
3.若在SQL 2000無法完成附加資料庫時可利用以下步驟完成交易記錄檔建立
A.在SQL Server Enterprise Manager裏面先建立資料庫如(test)。
B.停掉資料庫伺服器。
C.將資料庫的日誌檔test_log.ldf刪除,用要恢復的資料庫mdf檔蓋掉剛才建立的資料庫資料檔案test_data.mdf。
D.啟動資料庫伺服器。這時候不能對此資料庫進行任何操作。
E.設置資料庫允許直接作業系統表。可以使用如下語句來實現。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
G.重建資料庫日誌檔
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
此時請確認無人在使用資料庫包括SQL Server Enterprise Manager
I.設置資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
J.將步驟E中設置的“允許對系統目錄直接修改”一項恢復。sp_configure 'allow updates',0
go
reconfigure with override
go
J.重新啟動SQL SERVER
45. MSSQL 2k8 R2 與 SQLEXPRESS 2k8 R2 的差別
硬體及檔案限制
資料來源:
保哥的blog http://blog.miniasp.com/post/2008/09/27/SQL-Server-Oracle-Features-Comparison-Chart.aspx
官方資料:http://msdn.microsoft.com/en-us/library/cc645993.aspx
46. ActiveX 控制項錯誤(MSSQL 2008 R2)
在 管理 ==> 維護計劃 ==> 編輯指定工作,突然出現這樣的錯誤
小舖Ada大提供了一個方法,目前正在測試中
資料來源:
小舖討論區http://www.blueshop.com.tw/board/FUM20041006152735ZFS/BRD201212181018348FH.html
微軟technet說明
http://technet.microsoft.com/zh-tw/library/dd631688%28v=ws.10%29.aspx
補充:
目前有得到幾種方式,都是與大家討論而來的,謝謝大大們的相挺
1. 設定 ActiveX 安裝程式服務。
這是由Ada大提供的方式,不過,不知道是towns設定錯誤還是其他原因,設完後是無效的。towns也看過其他主機的設定,都是用預設值(尚未設定)
towns的設定可參考小舖討論區
2. MSSQL中毒,需要重灌。
這個回應讓towns不知道該怎麼做呢! ^^",說不定是最好的方式 = =
3. 微軟技支
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q298725
其中提到的機碼(HKLM/Software/Microsoft/Ole/DefaultAccessPermission)在towns的系統中,並不存在,這個應該是因為towns並沒有設定DCOMcnfg utility的關係
4. 微軟討論區
http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/ceaccde6-291c-4084-8a2c-f52e28343e98/
這個方式看來與第3個方式類似,都是提到DCOMcnfg的設定問題
5. 微軟MSDN
http://msdn.microsoft.com/zh-tw/library/hh710041.aspx
這是由richardsuma大提供的資訊。這是要確認帳號的伺服器角色是否有勾選 sysadmin,towns查看後,是有勾的
6. UAC開太高了
這是D大協助查詢的,D大自己測試,似乎不是這個問題,但,towns該試試。還是失敗了 = =
資料庫欄位描述查詢很多時候towns需要寫出欄位描述,在沒方法以前,就是一個一個看,現在有兩個好方法
一、半手動查詢
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = '資料庫' AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME
列出所有資料表名稱
SELECT * FROM ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', '資料表名稱', 'column', NULL)
列出指定資料表資訊
這個方式需透過文字編輯器將資料表名稱一一寫入第二個語法
方式提供:bobo大
二、全自動查詢
這個是孤影大的研究,謝謝孤影大
http://www.dotblogs.com.tw/ajun/archive/2008/02/01/1044.aspx
這個T-SQL,執行後,會已html語法的方式呈顯哦!
檔案下載:Script_to_generate_DB_Document_Version_1.1
檔案提供:JK大
MSSQL 2008 R2 ==> MSSQL 2008或2005
方法一、使用產生指令碼方式並只匯出資料
指定資料庫 按滑鼠右建 ==> 工作 ==> 產生指令碼 ==> 選擇物件中 選 選取資料庫特定物件 勾選資料表 ==> 設定指令碼編寫選項 在儲存至檔案 點選 進階 將 要編寫指令碼的資料類型 選僅資料,這時產生的就只有資料了
方法二、將資料匯出成mdb檔,再匯入資料庫
資料庫結構比對及匯出差異結構(或直接更新)很多時候程式在開發時,客戶會同步測試及寫入資料,這的會造成開發版的資料庫結不同,開發過程中因為變動結構很多不可能一一寫出Schema,而且又不可以覆蓋客戶端的資料庫,因為,已經有重要資料了 = =,這時可以使用VS2010中工具 資料結構比對 ,下面說明使用方式
開啟 VS2010 (版本必需在 Pre以上)==> 資料 ==> 結構描述比較 ==> 新增資料結構描述比較 ==> 點選資料庫 ,並新增連接 ==> 打入伺服器名稱、打入帳密驗證、選取資料庫(兩邊都要做) ==> 到 結構描述比較設定 按下 選項 做進階設定 ==> 比較選項 中的設定,可以參考保哥的blog,有說明,設定完成後,按下確定,就開始比對 資料庫結構了,比對完成後,可以使用上方的功能 寫入更新 或 匯出至編輯器 的方式,將資料庫結構同步了
補充:進階設定要勾選的項目
一般,比較選項
1. 忽略 ANSI_NULLS
2. 忽略 QUOTED_IDENTIFIERS
3. 忽略檔案和記錄檔的檔名和路徑
物件型別
1. 勾選 SQL 檔案 (SQL Files)
2. 勾選 角色成員資格 (Role Memberships)
3. 勾選 使用者 (Users)
4. 勾選 登入 (Logins)
5. 勾選 資料庫角色 (Database Roles)
6. 勾選 檔案群組 (Filegroups)
7. 取消勾選 擴充屬性 (Extended Properties)
8. 勾選 權限 (Permissions)
資料來源:保哥的blog http://blog.miniasp.com/post/2010/12/01/Visual-Studio-2010-Database-Project-Schema-Compare-Options.aspx
1. 指令管理資料庫關閉與啟動
net stop mssqlserver /y <==使用net 指令停止mssqlserver服務,並同時同意停止其他相關服務
net start sqlserveragent <==使用net 指令啟動sqlserveragent服務,系統會自動將mssqlserver 啟動
net stop 及 start 主要是用來停止與啟動系統中的服務,所有的服務都可以透過這樣的方式來管理,另一個towns常用的是IIS的管理。
注意:後面加的服務名稱並不是在“服務”中的“顯示名稱”,而是“服務名稱”
2. 列出abc所有的table
sp_tables @table_name = '%',@table_owner = 'dbo',@table_qualifier = 'abc'
sp_tables @TABLE_TYPE= "'table'" <== 列出所有table 名稱
sp_tables @table_name = '%' <== 列出所有table及veiw 名稱
3. 選擇所有欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,顯示所有欄位)
select * from abcd where cdef = 'towns'
選擇cdef,aaa欄位從 abcd 資料表中找出 cdef 欄,並找有towns完全相同的字串(單一條件絕對搜尋,只顯示兩欄位)
select cdef,aaa from abcd where cdef ='towns'
4. 查尋資料庫版本
select @@version
5. 刪除特定資料表
delete from abc <==刪除abc資料表中的資料
delete
FROM abc
WHERE (abcde > '2013-03-07 15:37:00')
and abcde < '2013-03-07 15:57:00'
刪除abc資料表中 欄位abcde時間為 2013-03-07 15:37:00 ~ 15:57:00間的資料
6. MSSQL 2005 資料庫 <==> MSSQL 2005 Express 資料庫
MSSQL 2005 Express ==> MSSQL 2005。直接附加即可
MSSQL 2005 ==> MSSQL 2005 Express
1. 由MSSQL 2005 匯出資料庫結構。在指定資料庫按滑鼠右鍵==>工作==>產生指令碼==>下一步==>確認是否為選擇的資料庫,下一步==>在選擇指令碼選項中,不需做特別修改,下一步==>選擇物件類型,僅選擇資料表及檢視,下一步==>選擇資料表,全選,下一步==>選擇檢視,全選,下一步==>輸出選項,這裡依需求選擇,下一步(towns多選寫指令碼至檔案),下一步==>設定檔名及路徑
,存檔,下一步==>完成
註:對該資料庫需要有存取權限,如果只有讀取權限,匯出時會出現錯誤
2. 將結構檔匯入 MSSQL 2005 Express。開啟Managemant==>檔案==>開啟==>檔案==>選擇剛剛匯出的檔案==>這時系統會要求打入帳密(確認連結的資料庫是否正確,帳密需有寫入權限)==>此時結構語法已載入==>點入語法,並確認要載入的資料庫是否正確(系統會預設載入為master)==>執行==>結構載入
3. 將資料匯入 MSSQL 2005 Express。
3.1.連結資料庫匯入
開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(確認目的地及登入資料,這裡需有寫入權限)==>指定資料表複製或查詢,towns通常是要複製,選從一或多個資料表或檢視複製資料,下一步==>全選所有的資料表及檢示,編輯,選刪除資料表中的資料列,並取消檢視,下一步==>立即執行==>確認工作==>完成
3.2.可用匯出檔案方式,將資料再匯入。
開啟Managemant==>選擇資料來源(確認資料來源及登入資料,一般towns會使用ReadOnly 帳號,以避免錯誤)==>選擇目的地(選擇excel)==>選擇匯出路徑並打入檔案名稱==>地區設定及字碼頁需依資料庫編碼決定 ==>從一或多個資料表或檢視複製資料 ==>下一步(這裡towns使用預設值)
注意事項:做匯出匯入的動作是非常危險的,方向一錯資料就不見了,建議在執行時,該備份的一定要先備份,不要嫌麻煩
技術指導:藍色小舖資深工程師 IZAN
補充說明:最近一次的測試,是可以直接使用MSSQL 2005 ent 備份出來的檔案,直接還原到 MSSQL 2005 Express版 中SQL Server Management Studio Express為 SP3版
7. MS SQL 2005 TCP/IP協定啟用
到開始Microsoft SQL 2005==>組態工具==>進入 SQL Server組態管理員(有些會出現英文)==>選擇 SQL Server 2005 網路組態==> 這裡可能會出現SQL及SQLEXPRESS,看哪個要開就開哪個 ==>選擇TCP/IP ==>IP位址==>確認IPALL中TCP通訊埠,是否有開起埠號(如預設值1433),在開啟後,要重新啟動SQL Server的服務,並使用netstat -an來檢查是否有開啟1433 port
8. 加快資料庫讀取速度,利用先將資料庫放到記憶體中,加快讀取速度
相關資料:http://blog.miniasp.com/post/2009/11/SQL-Server-Performance-Tuning-Caching-commonly-used-tables.aspx(感謝will大無私分享)
9. 在MSSQL資料庫轉移時,常常會遇到的問題
9.1. 資料庫使用還原或附加後,因為使用者不存在而造成網站無法正確讀取資料庫( 如圖nouser),此時需刪除並重建使用者
9.2. 要刪除使用者,重建時,發生使用者無法刪除,導致無法重建該使用者。常見原因有
9.2.1. 在該資料庫==>安全性==>結構描述中,有該使用者的名稱
處理方式:到結構描述中,將該使用者刪除,如果無法刪除,就與下面兩點有關
9.2.2. 在該資料庫==>資料表==>結構描述中,有該使用者的名稱(如圖table)
9.2.3. 在該資料庫==>檢示==>結構描述中,有該使用者的名稱(如圖view)
2000處理方式:手動將結構描述改為dbo
開啟SQL Server Enterprice Manager==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計資料表==>按左上方“資料表與索引屬
性”(如圖property)==>變更擁有者為dbo(如圖property-1),存檔==>擁有者就改為dbo,就可
刪除帳號即可
2005處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2005property),存檔==>擁有者就改為dbo,就可刪除帳號即可
2008處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2008property),存檔==>擁有者就改為dbo,就可刪除帳號即可
註:SQL Server Management Studio 預設並不開啟屬性視窗,按F4就可開啟
技術指導:藍色小舖資深工程師 IZAN
補充:使用者擁有預存程序(如圖storedprocedure2),這個也會造成無法刪除使用者的問題,這時必須重建預設程序才能解決該問題。在預存程序上按滑鼠右鍵==>編寫預存程序指令碼為==>CREATE至==>產生指令碼,再將指令碼中的擁有者改為dbo,刪除該程序後重建這個預存程序。
技術指導:tina
10. 當同台主機安裝了多個MSSQL(如有有安裝2000、2005 Express、2005等)要注意
10.1.在進入SQL時,要選擇正確的版本
10.2.在新增帳號時,請使用2005來新增及指定資料庫,否則會發生帳號無法正常讀取的問題
11. 從 abcd 資料表中cdef 欄,找出有張及張*文的字串(兩條件模糊搜尋)
select * from abcd where (cdef LIKE '張%') OR (cdef LIKE '張%文')
12. 查詢T-SQL語法
sp_help
13. 列出資料庫清單,列出後再使用右鍵儲存結果為單一 CSV檔
13.1. 列出資料庫所有狀態
sp_helpdb
13.2. 僅列出資料庫名稱
USE master
SELECT dbid, DB_NAME(dbid) AS DB_NAME
FROM sysdatabases
ORDER BY dbid
資料來源:blues及tina口述
14. 查看每一個SQL語法的使用記錄
使用SQL Server Profiler 中新增追蹤,可以看到資料庫正在存取的情形
read ==>讀取硬碟資料筆數
write ==>寫入硬碟資料筆數
duration ==>經過時間,時間太長就表示讀取/寫入硬碟資料時很長,這是造成資料庫回應緩慢的原因(1000=1秒)
技術指導:藍色小舖資深工程師 IZAN
15. access 2007與資料庫連結(圖解)
1. 匯入mssql 資料:外部資料==>其他==>ODBC資料庫(如圖mdb1.jpg)
2. 選擇匯入方式,第一項為將資料cp一份到電腦中,第二項為連結同步,取得最新資料(如圖mdb2.jpg)
3. 選擇資料來源,請新增一個 DSN資料來源(如圖mdb3.jpg)
4. 選擇 SQL server 下一步(如圖mdb4.jpg),將DSN指定存放位置及設定名稱 下一步(如圖mdb5.jpg)
5. 與伺服器建立連結,打入伺服器名稱或IP(如圖mdb6.jpg)
6. 選擇連入帳戶,選擇第二項者,需打入帳號及密碼(如圖mdb7.jpg)
7. 指定取得資料庫,勾選變更預設資料庫即可選擇(如圖mdb8.jpg)
8. 這一塊使用預設值,不需變更(如圖mdb9.jpg),summary(如圖mdb10.jpg),完成後需打入帳密登入資料庫(如圖mdb11.jpg)
9. 選擇要匯入的 table(如圖mdb12.jpg),完成匯入
補充:關於access 2010新檔案格式問題
當使用access 2010匯出資料並存檔時,檔案格式為 *.accdb,如果要將檔案存為 *.mdb,需使用 儲存並發佈 的方式,這時就可以將檔案另存成 mdb格式了
16. 關於資料庫 ldf 檔非常大,但卻無法壓縮的問題
towns管理的伺服器中,有些資料庫的Log檔,實在是大的離譜,但在執行備份壓縮後,卻不見Log檔變小(如圖mssqlLog2.jpg),雖然說可用空間明顯加大(如圖mssqlLog.jpg),但檔案事實上是沒變小的,目前towns 將自動壓縮功能啟用(如圖mssqlLog3.jpg)並執行排程備份壓縮,是否能成功將 ldf 檔變小,今天晚上就可以知道了。
很可惜,ldf 檔並沒有變小,看來在動作中的資料庫,要壓縮是個問題呢
16.1.經過IZAN指導,要連續兩次壓縮,才能將ldf 檔變小,而且必需使用維護計畫來執行才能有效壓縮,可以先做一次手動備份LDF檔,再用計畫做備份壓縮,也可以有效處理
16.2.不需要設定自動壓縮功能(如圖mssqlLog3.jpg),也能有效壓縮
技術指導:藍色小舖資深工程師 IZAN
相關資料:http://ithelp.ithome.com.tw/question/10028911
補充1:LDF 檔有多大,就需要給他一個多大的空間來備份,如LDF約10GB,硬碟空間就要 > 10GB
補充2:使用T-SQL指令處理
T-SQL語法如下:
1. 截斷交易記錄檔:將資料庫「復原模式」改為「簡單」,即可即斷交易記檔
T-SQL:ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE
2. T-SQL:SP_HELPDB 資料庫名稱 此時可查得 ldf 檔對應到的邏輯名稱(name),一般會是"資料庫名稱_log",但若之前是從備份資料還原到不同名稱的資料庫,邏輯名稱(name)就可能不一樣。
壓縮交易記錄檔
3. 執行以下指令後,應該可以發現ldf的檔案大小縮小成2MB
T-SQL:use 資料庫名稱 GO DBCC SHRINKFILE('ldf的邏輯名稱',2)
4. 將資料庫「復原模式」改回「完整」
T-SQL: ALTER DATABASE 資料庫名稱 SET RECOVERY FULL
資料來源:jiankai 大筆述
17. 從 abcd 資料表中所有的欄位找出 cdef 欄,並找有 1 或 2 字串的資料(同時搜尋兩條件)
SELECT * FROM abcd WHERE (cdef = '1') OR (cdef = '2')
18. 從 abcd 資料表中所有的欄位找出 cdef 欄,去除有 1 或 2 字串的資料(同時去除兩條件)
SELECT * FROM abcd WHERE not(cdef = '1' OR cdef = '2')
SELECT * FROM abcd where cdef not in ('1','2')
資料來源:IZAN 及 TINA
19. 從 abcd 資料表中所有的欄位找出 cdef 欄為空值的資料
SELECT * FROM abcd WHERE (cdef = '')
20. 統計abcd 資料表筆數
select count(*) from abcd
資料來源:Blues
21. 從abcd 資料表中列出前 N 筆 cdef 欄 資料(僅顯示cdef 欄資料)
select top ( N ) cdef from abcd
從abcd 資料表中列出前 N 筆資料
select top ( N ) * from abcd
資料來源:Blues
22. 從abcd 資料表中抓取 cdef 欄及ghij 資料
select cdef,ghij from abcd
23. 索引片段過多會導致資料庫讀取該table效能變差
查看索引片段情形與頁面使用飽和度
進入資料庫==>選定特定資料庫==>資料表==>選定特定資料表==>索引==>點開看該叢集==>滑鼠右鍵點屬性==>選擇片段==>這裡就可以看到片段總計及頁面飽和度
24. T-SQL指令變更資料型別
ALTER TABLE abc
ALTER COLUMN abcuid Varchar (20) NOT NULL;
變更資料表 abc中的資料欄 abcuid 的欄位長度為 20
技術提供:blues
25. 清空特定資料庫語法。這個語法會特定資料庫中的資料完全清除
TRUNCATE TABLE table_name
26. MS-SQL 語法教學站台
http://www.1keydata.com/tw/sql/sql.html
27. MS-SQL 2000 問題
當使用windws 2003 server 安裝 MS-SQL 2000,SQL 版本為 SP2或更舊,這時會造成 TCP/IP 通訊協定無法開啟的問題,這時請將SQL 2000更新到 SP4版,這個問題就會解決,詳細資料可見事件檢視器==>應用程式
28. MS-SQL 2008 無法直接編輯資料的修改方式
2k8基於安全性考量,management studio預設的編輯功能為唯讀,導致無法編輯欄位內容、欄位格式等等,需到工具 ==>選項 ==>Desigeners ==>資料表和資料庫設計工具 ==>取消“防止存儲需要資料表重建的變更”,這樣就可以編輯了
資料來源:小舖工程師 jainkai
29. MS-SQL 2000的查詢頁面
ms-sql 2000中並沒有新增查詢的項目,以提供語法寫入,需要到 工具 ==> sql query analyzer 才會開啟語法寫入頁面
註:要指定資料庫
30. 帳號權限管理
30.1. 限制讀取指定資料表(table)
建立帳號test ==>在指定資料庫(abcd),安全性中加入使用者test ==>但不提供“資料庫角色成員資格”==>到指定table(tbAabc)上按滑鼠右鍵==>屬性 ==>權限 ==>點下 搜尋 ==>瀏覽 ==>勾選指定帳號(test)==>到下表中勾選test的權限,這裡依需求勾選,towns只勾授與“選取”。設定完成後,test帳號就只能看到這個table 並對這個table執行選取的指令了
刪除方式:直接於指定資料庫安全性中刪除該使用者
31. 主機名稱與MSSQL問題
當我們在安裝完MSSQL後再變更主機名稱,會發生維護計畫無法使用的問題,因為MSSQL會抓取舊主機名稱,造成執行權限不正確,導致維護計畫無法使用,這個問題可以在事件檢視器中看到。
處理方式:打入新主機名稱或使用IP連接資料庫
32. 建立資料庫
與ACCESS、Excel表很類似,不過通常需要加上主索引
主索引 自行設定名稱 類型 bigint,自動編號 請將識別規格改為 是
資料行 自行設定名稱 類型 nchar,並設定字數
33. 單一table大小可以在該table上面按滑鼠右鍵==>屬性==>儲存體,這裡就可以看到他使用的索引空間大小,資料空間大小
34. 取出大於等於1000的數值資料
select * from abcd where defg >= 1000
註:defg欄位必需為數值資料
35. MSSQL 2008 安裝失敗
系統:windows 2008 R2 std sp1
MSSQL:MSSQL 2008 R2 ent
在安裝過程中出現了“效能計數器登入區一致性:失敗”
點選失敗後,會請我們到指定網站參考微軟的說明
連到官網後,看了一下資料,說真的以towns的資質,實在是看不懂這個文章在寫什麼,更不知道怎麼下手處理問題,但towns有在伺服器廠商安裝系統時,有發現他們使用的是英文版OS,這個也造成了系統的區域資料異常。towns 試著到 控制台==>時鐘、語言和區域中查看,發覺在 系統管理==>非Unicode程式的語言,這裡寫的是“英文(美國)”,這個資訊顯然是錯誤的,towns 將他改為“中文(繁體、台灣)後,就可以正常安裝mssql了,還好這樣就可以了,官網資料實在是太難懂了= =
發覺這個問題,是因為在cmd模式下,會出現亂碼
36. MSSQL 語法,選取時間格式
方法一
SELECT *
FROM abc
WHERE DATEPART(yy, d_date) = 2010 AND DATEPART(mm, d_date) = 12 AND DATEPART(dd, d_date) = 31
方法二(選取時間區間)
SELECT *
FROM abc
WHERE d_date BETWEEN '2010-12-31 00:00:00' AND '2010-12-31 23:59:59'
資料來源:blues大師口述
方法三(選取時間區間)
SELECT *
FROM abc
WHERE d_date < '2010-12-31 00:00:00'
37. 關於LDF檔異常長大的原因
使用索引重建,會造成LDF檔變大,如果有需要重建,建議先看看LDF檔是否很大了,如果很大,要先壓縮後再執行
38. MS-SQL 2008 使用備維護計劃排定自動備份發生失敗問題
towns架設的一台SQL-server發生了自動備份失敗問題,系統會提示查看記錄檔,因為towns的計劃中,有多個子計劃,所以要開記錄檔,要到Agent中查看,錯誤圖片(sqlbkerr.jpg)
查看記錄檔:到SQL Server Agent ==> 作業 ==> 到指定的作業中按滑鼠右鍵 ==> 點 檢視記錄
在記錄中看到以下錯誤,這個問題應該是安裝時少裝了Integration Services造成
39. 更新統計資料及更新使用方式計數器
在SQL 2000中容易發生因為資料庫轉移或昇級後,資料庫讀取延遲的問題,我們需要更新更新統計資料及更新使用方式計數器
更新統計資料語法
USE [資料庫];
GO
EXEC sp_updatestats
更新使用方式計數器
USE [資料庫]
DBCC UPDATEUSAGE (0);
GO
資料來源:kelly大師
40. MS-SQL 混合驗證模式(2005)
在安裝MSSQL 的過程中,可以選SQL server驗證或windows驗證模式,如果選了windows驗證模式,他就不需要打入sa的密碼,這也會造成之後使用SQL Server Management Studio,無法使用 SQL server驗證 模式登入,就算是建了一個帳號,也無法登入。如果要開放 SQL server驗證 登入,有兩個步驟
1. 使用 SQL Server Management Studio 登入後,在 物件總管,伺服器名稱上按滑鼠右鍵 ==> 屬性 ==> 安全性 ==> 伺服器驗證,點選 SQL server驗證及windows驗證模式,完成後重新啟動 SQL
2. 使用 ALTER LOGIN 語法,啟用sa 帳號,在password後面請自行打入sa 密碼
ALTER LOGIN sa ENABLE ;
GO
ALTER LOGIN sa WITH PASSWORD = '' ;
GO
完成上述兩步驟後,就可以使用 SQL server驗證 模式登入了
資料來源:http://missice.pixnet.net/blog/post/24136664-ms-sql-server-%E8%AE%8A%E6%9B%B4%E4%BC%BA%E6%9C%8D%E5%99%A8%E9%A9%97%E8%AD%89%E6%A8%A1%E5%BC%8F missice大的blog
註:towns在設時,沒有注意到sa 帳號是否存在,如果存在,第二步驟是否可以用滑鼠啟用sa 帳號就達成了呢?^^ 如果有朋友遇到,再試一下結果,可以的話也告訴towns哦!^^
41. 資料備份還原問題
towns 習慣使用備份還原方式來轉移資料庫,好處是資料完整、結構完整。缺點是 1.不同版本的資料庫還原會出問題(如2k8還原到2k3或2k8 R2還原到 2k8),2. 帳號會同時還原進來,需刪除重建。
問題一處理方式:
1. 將結構及資料同時匯出為語法(以2k8 R2為例)
開啟SQL Server Management ==> 指定資料庫 按滑鼠右鍵 ==> 工作 ==> 產生指令碼 ==> 下一步 ==> 這裡可以依需求選擇 完整指令碼或選取特定資料庫物件指令碼 ==> towns 只需要資料表 ==> 輸出類型 選將指令碼儲存到特定位置,儲存至檔案,單一檔案,點選進階,將 要編寫的指令類型選擇,選擇結構描述及資料(這個選擇有三種,依需求選,也可以選擇單一資料表),指定檔名及存放位置 ==> 下一步 ==> 下一步 ,就會開始編寫指令碼了。產生的指令碼,就可以在多數MSSQL版本中使用
註1:在2k8中,點選進階,將 編寫資料指令碼 設為 True
2. 請參考第9點
42. 在執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形
towns在一次執行ldf 檔備份壓縮後,出現了 [資料庫名稱](正在還原...)的情形,這時網站是無法正常讀取資料庫的,必需使用語法,讓資料庫狀態回到一般,才能正常讀取
處理方式:
使用語法
RESTORE DATABASE [資料庫名稱]
WITH RECOVERY
後,再重整資料庫,就會回到一般狀態
資料來源:德瑞克大的blog http://sharedderrick.blogspot.tw/2008/12/sql-server-restoring.html
43. MSSQL 2008 R2 資料庫 ==> MSSQL 2008 資料庫
這是41點的補充,單純說明 2k8 R2 ==> 2k8
在41點 towns 說明了將資料及結構同時匯出的方式,但這次做了這個動作,出來的sql檔有1GB之大,這會連將檔案傳到主機都成問題,而且,也不能保證能寫入資料庫,這次的方式是使用匯出匯入方式 ,直接將資料及結構產生
流程:
1. 建立一台MSSQL 2K8 R2主機,並還原資料庫
2. 於目標主機中新增指定資料庫,此時資料庫是空的
3. 使用匯入匯出方式,將新資料匯入目標主機中的指定資料庫,並新增結構。此時不要將view表一併匯入
4. 使用匯出匯入方式,將view表結構匯出
5. 到目標主機中,使用語法產生view表結構
6. 建立帳號
這樣的做法可以減少因型態不同、驗證錯誤所產生資料庫匯出匯入的問題
44. 只使用MDF檔來還原資料庫的方式
資料來源:UBLink技術團隊討論區 Kao大 回應 http://ns2.ublink.org/phpbb/viewtopic.php?t=1637
towns一字不漏的將Kao大的回應直接放上來,主要是為了避免towns修改後出現錯誤。如不適合放於此,請通知towns刪除,謝謝 ^^
當資料庫缺少了交易記錄檔時
1.在 SQL 2000 時請利用附加資料庫的方式重新Create 交易記錄檔
2.在 SQL 2005 是亦是利用附加資料庫的方式但在附加時要將對話框的交易檔路 徑刪除即可
3.若在SQL 2000無法完成附加資料庫時可利用以下步驟完成交易記錄檔建立
A.在SQL Server Enterprise Manager裏面先建立資料庫如(test)。
B.停掉資料庫伺服器。
C.將資料庫的日誌檔test_log.ldf刪除,用要恢復的資料庫mdf檔蓋掉剛才建立的資料庫資料檔案test_data.mdf。
D.啟動資料庫伺服器。這時候不能對此資料庫進行任何操作。
E.設置資料庫允許直接作業系統表。可以使用如下語句來實現。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
G.重建資料庫日誌檔
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
此時請確認無人在使用資料庫包括SQL Server Enterprise Manager
I.設置資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
J.將步驟E中設置的“允許對系統目錄直接修改”一項恢復。sp_configure 'allow updates',0
go
reconfigure with override
go
J.重新啟動SQL SERVER
45. MSSQL 2k8 R2 與 SQLEXPRESS 2k8 R2 的差別
硬體及檔案限制
版本
功能名稱
|
SQL Enterprise
|
SQL Standard
|
SQL Express
|
CPU使用數 | 系統最大值 | 4個 | 1個 |
RAM使用量 | 系統最大值 | 64GB | 1GB |
資料庫檔案最大值 | 524 PB | 524 PB | 10GB |
管理工具限制
更詳細的資料可參考微軟官方資料
版本
功能名稱
|
SQL Enterprise
|
SQL Standard
|
SQL Express
|
管理工使用 | Yes | Yes | Yes |
SQL CMD | Yes | Yes | Yes |
SQL Profiler(事件探查) | Yes | Yes | No |
SQL Server Agent(代理工具) | Yes | Yes | No |
資料來源:
保哥的blog http://blog.miniasp.com/post/2008/09/27/SQL-Server-Oracle-Features-Comparison-Chart.aspx
官方資料:http://msdn.microsoft.com/en-us/library/cc645993.aspx
46. ActiveX 控制項錯誤(MSSQL 2008 R2)
在 管理 ==> 維護計劃 ==> 編輯指定工作,突然出現這樣的錯誤
小舖Ada大提供了一個方法,目前正在測試中
資料來源:
小舖討論區http://www.blueshop.com.tw/board/FUM20041006152735ZFS/BRD201212181018348FH.html
微軟technet說明
http://technet.microsoft.com/zh-tw/library/dd631688%28v=ws.10%29.aspx
補充:
目前有得到幾種方式,都是與大家討論而來的,謝謝大大們的相挺
1. 設定 ActiveX 安裝程式服務。
這是由Ada大提供的方式,不過,不知道是towns設定錯誤還是其他原因,設完後是無效的。towns也看過其他主機的設定,都是用預設值(尚未設定)
towns的設定可參考小舖討論區
2. MSSQL中毒,需要重灌。
這個回應讓towns不知道該怎麼做呢! ^^",說不定是最好的方式 = =
3. 微軟技支
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q298725
其中提到的機碼(HKLM/Software/Microsoft/Ole/DefaultAccessPermission)在towns的系統中,並不存在,這個應該是因為towns並沒有設定DCOMcnfg utility的關係
4. 微軟討論區
http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/ceaccde6-291c-4084-8a2c-f52e28343e98/
這個方式看來與第3個方式類似,都是提到DCOMcnfg的設定問題
5. 微軟MSDN
http://msdn.microsoft.com/zh-tw/library/hh710041.aspx
這是由richardsuma大提供的資訊。這是要確認帳號的伺服器角色是否有勾選 sysadmin,towns查看後,是有勾的
6. UAC開太高了
這是D大協助查詢的,D大自己測試,似乎不是這個問題,但,towns該試試。還是失敗了 = =
資料庫欄位描述查詢很多時候towns需要寫出欄位描述,在沒方法以前,就是一個一個看,現在有兩個好方法
一、半手動查詢
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = '資料庫' AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME
列出所有資料表名稱
SELECT * FROM ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', '資料表名稱', 'column', NULL)
列出指定資料表資訊
這個方式需透過文字編輯器將資料表名稱一一寫入第二個語法
方式提供:bobo大
二、全自動查詢
這個是孤影大的研究,謝謝孤影大
http://www.dotblogs.com.tw/ajun/archive/2008/02/01/1044.aspx
這個T-SQL,執行後,會已html語法的方式呈顯哦!
檔案下載:Script_to_generate_DB_Document_Version_1.1
檔案提供:JK大
MSSQL 2008 R2 ==> MSSQL 2008或2005
方法一、使用產生指令碼方式並只匯出資料
指定資料庫 按滑鼠右建 ==> 工作 ==> 產生指令碼 ==> 選擇物件中 選 選取資料庫特定物件 勾選資料表 ==> 設定指令碼編寫選項 在儲存至檔案 點選 進階 將 要編寫指令碼的資料類型 選僅資料,這時產生的就只有資料了
方法二、將資料匯出成mdb檔,再匯入資料庫
資料庫結構比對及匯出差異結構(或直接更新)很多時候程式在開發時,客戶會同步測試及寫入資料,這的會造成開發版的資料庫結不同,開發過程中因為變動結構很多不可能一一寫出Schema,而且又不可以覆蓋客戶端的資料庫,因為,已經有重要資料了 = =,這時可以使用VS2010中工具 資料結構比對 ,下面說明使用方式
開啟 VS2010 (版本必需在 Pre以上)==> 資料 ==> 結構描述比較 ==> 新增資料結構描述比較 ==> 點選資料庫 ,並新增連接 ==> 打入伺服器名稱、打入帳密驗證、選取資料庫(兩邊都要做) ==> 到 結構描述比較設定 按下 選項 做進階設定 ==> 比較選項 中的設定,可以參考保哥的blog,有說明,設定完成後,按下確定,就開始比對 資料庫結構了,比對完成後,可以使用上方的功能 寫入更新 或 匯出至編輯器 的方式,將資料庫結構同步了
補充:進階設定要勾選的項目
一般,比較選項
1. 忽略 ANSI_NULLS
2. 忽略 QUOTED_IDENTIFIERS
3. 忽略檔案和記錄檔的檔名和路徑
物件型別
1. 勾選 SQL 檔案 (SQL Files)
2. 勾選 角色成員資格 (Role Memberships)
3. 勾選 使用者 (Users)
4. 勾選 登入 (Logins)
5. 勾選 資料庫角色 (Database Roles)
6. 勾選 檔案群組 (Filegroups)
7. 取消勾選 擴充屬性 (Extended Properties)
8. 勾選 權限 (Permissions)
資料來源:保哥的blog http://blog.miniasp.com/post/2010/12/01/Visual-Studio-2010-Database-Project-Schema-Compare-Options.aspx
2014年5月12日 星期一
2014年5月6日 星期二
RFP
如何提出RFP找到適合的系統廠商(一)
想要找到好的系統委外廠商,製作RFP是一項很重要的工作。何謂RFP(Request For Proposal),簡單來講就是需求的一方根據自己的需求要求提供服務的一方提案的「提案要求書」。讀者當中應該有人有撰寫或者看過RFP的經驗,應該了解到提出明確的RFP,找到好的而且適當的廠商,不是一件很容易的事。有些企業已經有固定格式的RFP,尤其是建築、工程業已相當成熟的標準格式和程序。不過在IT業界,應該尚未有標準的RFP。
提出RFP之後,最後會針對廠商提出的提案內容進行評選。不過常常會發生買方寫了一大堆需求,賣方也針對需求提案了一大堆,卻很難評選的情形。難以評選的原因,除了RFP的內容有問題之外,RFP的作業流程也有問題。為了避免此種情形發生,基本上必須明確傳達①想要做甚麼、②有多少預算、③時程有多久,以及④廠商需要提出哪些資料。必要時撥些經費給提案的廠商,讓廠商能夠針對RFP的內容製作提案書,不是拿現有的資料充數。
「系統委外」步驟之一
製作RFP為「系統委外」的步驟之一,「系統委外」的作業流程主要分①前置作業,②製作RFP,③提案書的評選和決定,④訂立契約等4個步驟。
- ①前置作業
- 較複雜的系統可以參考本網站的IT策略擬定的流程。通常掌握經營、業務、系統相關課題,使用者的需求,同業先進的事例以及技術動向等。
- ②製作RFP
- 根據前置作業所取得的相關資訊,明確的將①想要做甚麼、②有多少預算、③時程有多久,以及④廠商需要提出哪些資料等資訊放進RFP內。之後會針對此部分做較詳細的解說。
- ③提案書的評選
- 針對廠商的提案書的內容進行評選。除了評斷是否符合RFP的需求外,廠商的對應態度、體制、提案書的品質、技術能力、風險管理等也應列入評選的項目。還有考量成本時,系統導入後的維護以及系統營運成本等也必須一併檢討。
- ④訂立契約
- 將採用廠商提案的內容,反映到實際的契約上。通常在此階段會出現彼此認知的差異發生,必須注意,否則有可能功虧一匱。
接下來的章節,針對②製作RFP、③提案書的評選等加以詳細說明。
PM RFP RFI RFQ As-is, To-be 與 Gap
寫的時侯大概的原則是「由大到小,由大方向到小細項」,以「建置人力銀行網站專案」為例,要定義範疇的方向可以參考下列簡例:
目標:公司拓展業務方向,提高獲利
範圍:在2008年第四季導入人力銀行網站
工作事項:
1. 決定預算及時程
2. 擬定專案計劃
3. 專案執行
4. 成果驗收
5. 上線運作
交付項目:
1. 專案計劃書
2. 專案會議記錄
3. 驗收報告
以下是與範疇有關的一些名詞以及原則,這裡做個說明
RFP:Request for Proposal,較大型標案中,甲方會提供RFP給所有有意願承包的乙方當參考資料,RFP的內容主要是針對甲方所欲外包的工作,做更詳細的說明,乙方可以更清楚地評估自身承接標案的能力,並據以評估時程、成本之後,做出報價。
RFI:Request for Information,有些標案,甲方只知道要做什麼,但是細節不是很清楚,於是就會發出Rrequst for Information,向其他有相關專業知識的廠商詢問資料,將資料彙整之後,再寫成RFP。
RFQ:Request for Quotation,在各項先期溝通完成之後,甲方詢問乙方報價的動作
As-is, To-be 與 Gap
這是定義範疇時一種常用的方法,因為很簡單明瞭,As-is指的就是「現況」,To-be指的就是「未來」(即專案完成後的結果),而Gap就是其中的差異。
以頂樓加蓋一間小工作室為例,As-is就是目前三層樓透天的房子,To-be就是三層樓的房子,頂樓有一間小工作室,Gap就是要蓋的那間小工作室。
IT界的專案中的As-is和To-be或許沒有這麼單純而簡單的定義,但是基本上這個方法可以讓許多人在短時間內了解到這個專案要做的是什麼,更甚至可以評估「值不值得這個錢」。
需要(need)與想要(want)
我本身的經驗多半是乙方,在專案前期過程,與甲方在談需求與定義範疇時,常常會用到這個方法,就是「需要」和「想要」,有時客戶講得天花亂墜、口沬橫飛,你就要適時的將他拉回現實世界,或者讓他做完夢之後,清楚地(一定要明確地)跟他溝通,他想要的是什麼,他需要的是什麼,以及你在這個專案打算承做的是什麼。每個人都想要一輛法拉利,但每個人只是需要一輛代步工具的自小客而已。
規模大小
專案規模大小是個吊詭的東西,要靠經驗去拿捏。規模太小賺不了什麼錢,規模太大又怕結不了案;規模太小客戶可能會看不上眼,規模太大客戶又可能不願意出那個錢。
對於IT界的專案,我的建議是,每個專案的時間最好不要超過三個月,以免夜長夢多。或許你會覺得:笑死人了,三個月的案子太小了吧。沒錯,我的經驗是,如果有大案子,就把他切成好幾個三個月的小案子去進行,最好連合約都能分開簽,例如:發射太空梭之第一階段(基地建設)、發射太空梭之第二階段(人員訓練)、發射太空梭之第三階段(太空梭建造)…等等。
模糊與明確
這個與專案規模一樣,同樣是變化萬千的東西,也要靠實戰去累積經驗。以乙方的角度出發,Sales與客戶談案子的時侯,範疇定得越模糊,越容易接到案子;而乙方後援部隊(技術團隊)卻希望範疇越明確越好,因為越明確越容易結案。
技術人最愛說的一句不該說的話
「只要定義清楚,我就做得出來」,我小時侯自恃甚高,也很愛講這句話,不知道天高地厚,人情世故,如今看遍浪花淘盡英雄淚。在此奉勸各位,這句話少說為妙。
有關於您提出的這些問題呢, 我們會帶回去會同相關部門與廠商做研究, 設法做出詳細及徹底的測試, 並討論各種後續各種可能衍生的問題及解決方案, 相信能提出讓您滿意的答覆.
謝謝您提出這個很重要的議題,由於您的意見我公司非常重視,公司要求我先做好詳細記錄,回去後再召集相關單位開會討論,務必找出讓您能滿意的做法,後續進行過程中,只要有 status update,會立刻跟您 update status,謝謝。
目標:公司拓展業務方向,提高獲利
範圍:在2008年第四季導入人力銀行網站
工作事項:
1. 決定預算及時程
2. 擬定專案計劃
3. 專案執行
4. 成果驗收
5. 上線運作
交付項目:
1. 專案計劃書
2. 專案會議記錄
3. 驗收報告
以下是與範疇有關的一些名詞以及原則,這裡做個說明
RFP:Request for Proposal,較大型標案中,甲方會提供RFP給所有有意願承包的乙方當參考資料,RFP的內容主要是針對甲方所欲外包的工作,做更詳細的說明,乙方可以更清楚地評估自身承接標案的能力,並據以評估時程、成本之後,做出報價。
RFI:Request for Information,有些標案,甲方只知道要做什麼,但是細節不是很清楚,於是就會發出Rrequst for Information,向其他有相關專業知識的廠商詢問資料,將資料彙整之後,再寫成RFP。
RFQ:Request for Quotation,在各項先期溝通完成之後,甲方詢問乙方報價的動作
As-is, To-be 與 Gap
這是定義範疇時一種常用的方法,因為很簡單明瞭,As-is指的就是「現況」,To-be指的就是「未來」(即專案完成後的結果),而Gap就是其中的差異。
以頂樓加蓋一間小工作室為例,As-is就是目前三層樓透天的房子,To-be就是三層樓的房子,頂樓有一間小工作室,Gap就是要蓋的那間小工作室。
IT界的專案中的As-is和To-be或許沒有這麼單純而簡單的定義,但是基本上這個方法可以讓許多人在短時間內了解到這個專案要做的是什麼,更甚至可以評估「值不值得這個錢」。
需要(need)與想要(want)
我本身的經驗多半是乙方,在專案前期過程,與甲方在談需求與定義範疇時,常常會用到這個方法,就是「需要」和「想要」,有時客戶講得天花亂墜、口沬橫飛,你就要適時的將他拉回現實世界,或者讓他做完夢之後,清楚地(一定要明確地)跟他溝通,他想要的是什麼,他需要的是什麼,以及你在這個專案打算承做的是什麼。每個人都想要一輛法拉利,但每個人只是需要一輛代步工具的自小客而已。
規模大小
專案規模大小是個吊詭的東西,要靠經驗去拿捏。規模太小賺不了什麼錢,規模太大又怕結不了案;規模太小客戶可能會看不上眼,規模太大客戶又可能不願意出那個錢。
對於IT界的專案,我的建議是,每個專案的時間最好不要超過三個月,以免夜長夢多。或許你會覺得:笑死人了,三個月的案子太小了吧。沒錯,我的經驗是,如果有大案子,就把他切成好幾個三個月的小案子去進行,最好連合約都能分開簽,例如:發射太空梭之第一階段(基地建設)、發射太空梭之第二階段(人員訓練)、發射太空梭之第三階段(太空梭建造)…等等。
模糊與明確
這個與專案規模一樣,同樣是變化萬千的東西,也要靠實戰去累積經驗。以乙方的角度出發,Sales與客戶談案子的時侯,範疇定得越模糊,越容易接到案子;而乙方後援部隊(技術團隊)卻希望範疇越明確越好,因為越明確越容易結案。
技術人最愛說的一句不該說的話
「只要定義清楚,我就做得出來」,我小時侯自恃甚高,也很愛講這句話,不知道天高地厚,人情世故,如今看遍浪花淘盡英雄淚。在此奉勸各位,這句話少說為妙。
有關於您提出的這些問題呢, 我們會帶回去會同相關部門與廠商做研究, 設法做出詳細及徹底的測試, 並討論各種後續各種可能衍生的問題及解決方案, 相信能提出讓您滿意的答覆.
謝謝您提出這個很重要的議題,由於您的意見我公司非常重視,公司要求我先做好詳細記錄,回去後再召集相關單位開會討論,務必找出讓您能滿意的做法,後續進行過程中,只要有 status update,會立刻跟您 update status,謝謝。
2014年4月25日 星期五
聰明藥
考試如果只要吞下藥丸而不需要用功不是很好嗎?有這樣的聰明藥丸嗎?
也許當你覺得有點遲鈍時可以服下藥丸,並且達到調整智力的效果。
事實上,研究員正在研究可以提升智力的物質。這些物質被稱為認知增強劑、聰明藥物或益智劑。認知增強的假定效果可以是幾件事情。舉例來說,這可能表示改善記憶力、學習效果、注意力、專注力、解決問題的能力、推理能力、社交技巧、下決定和計畫的能力。
在大部分的例子來說,認知增強藥物是用來治療患有神經性疾病或精神疾病的病人,但是有愈來愈多健康並且正常的人使用這些藥物,期待可以變的更聰明。雖然有許多公司製造了含有某些「聰明」化學物的「聰明」飲料、聰明能量補給棒和飲食補充物,但是沒有多少證據可以證實這些產品真的有效。來自不同實驗室的研究顯示参雜的結果;一些實驗室顯示對於記憶與學習有正面的效果,其他實驗室則顯示沒有效果。幾乎沒有利用正常且健康的人來進行構思很好的研究。
讓我們來看看關於認知增強物質的證據:
| 聰明藥丸? 智力檢驗? |
這些物質可能怎麼作用?
這些物質可能有什麼效果?
|
增加大腦動力?
鍛鍊你的大腦!
|
特殊的認知增強劑 | |
| |
作用在神經傳導物質的藥物
| |
營養物
|
引人深思的事?
|
包括草本植物的其他物質
|
一些聰明藥物可以在健康食品中發現;其他藥物則被進口或要被用作治療其他疾病的藥物,像是阿滋海默症和帕金森氏症。有許多網際網路、書籍、雜誌和報紙文章詳細說明聰明藥物的效果。也有大量嘗試銷售聰明藥物給大眾的宣傳與郵購業務。然而,這些業界或大眾報刊報導很少做出聰明藥物無法改善記憶力與學習的結論。相反地,他們試著指出他們的產品對大腦有神奇的效果,而且可以改善智力的功能。難道不能靠吃藥丸或喝加入聰明藥物的蘇打等不費力的學習嗎?這可能比花時間去用功來的更簡單。感覺遲鈍嗎?利用吃藥丸來讓大腦接受調整吧!
部分實驗數據顯示認知增強劑確實可以改善部分形式的學習與記憶,但也有許多其他數據指出這些物質並沒有效果。對這些物質的效果最強力的證據是在有大腦損傷或疾病(例如阿滋海默症和創傷性腦損傷)的患者其認知功能的提升。雖然銷售聰明藥物的大眾書籍和公司嘗試說服你這些藥物有效,在健康的人身上,這些物質有顯著效果的證據是很薄弱的,也很必須重要考慮的副作用。這些物質中有許多會影響中樞神經系統的神經傳導介質系統。這些化學物在神經方面的功能與行為的效果都還不知道。除此之外,這些物質長期的安全性還尚未被適當地測試,是否有機會和人們所服下的其他物質產生交互作用也沒有被測試。如人們如果突然停止服用一種叫麻黃的草本植物,可能會有危險。
許多關於認知增強劑的正面效果在一些大鼠實驗可以被觀察到。例如,科學家能夠訓練老鼠進行一些像是走迷宮等的特殊的測試,然後觀察是否「聰明藥物」可以增進老鼠的表現。但很難看出有多少數據可以適用在人類的學習與記憶上。比如說,假使聰明藥物可以使得老鼠感到飢餓呢?難道一隻飢餓的老鼠不會比不飢餓的老鼠在迷宮中跑得更快以得到食物報償嗎?也許老鼠不會變得更聰明,而且記憶不會有任何改善,老鼠跑得比較快可能只是因為他餓了。所以,走迷宮是來自老鼠的動力,而不是因為增加認知能力而影響了表現。如此,當要解釋由這些動物學習與記憶的實驗觀察到的改變時,仔細小心是非常重要。
阿滋海默症的其中一種症狀是一種叫乙醯膽鹼的神經傳導介質在大腦中的量降低,因此增加大腦中乙醯膽鹼的量被認為是一種阿滋海默症有效的治療方式或是減緩含有乙醯膽鹼的神經元的死亡。而Tacrine(塔克寧)和Donepezil(愛憶欣)這兩種藥物都是可以破壞乙醯膽鹼的乙醯膽鹼酶的抑制劑,因此在美國這兩種藥物都被許可用來治療阿滋海默症。
|
2014年4月24日 星期四
from每天簡單學英文
You are welcome 不客氣No worries 不用放心上
A: With my
qualifications and experience, I feel I am hardworking, responsible and
diligent in any project I undertake. Your
organization could benefit from my
analytical and interpersonal skills.(依我的資格和經驗,我覺得我對所從事的每一個項目都很努力、負責、勤勉。我的分析能力和與人相處的技巧,對貴單位必有價值。)
Q:Give me a summary of your
current job description. (對你目前的工作,能否做個概括的說明。)
A:I have been working as a
computer programmer for ten years. To be specific, I do network, trouble
shooting and provide software ,ISO 27001 support. (我幹了10年的電腦程序員。具體地說,我做網管,解決問題以及軟體供應ISO 27001方面的支持。)
Q:Why did you leave your last job.(你為什麼離職呢?)
A: Well, I am hoping to get an
offer of a better position. If opportunity knocks, I will take it.(我希望能獲得一份更好的工作,如果機會來臨,我會抓住。)
A:I feel I have
reached the "glass ceiling" in my current job. / I feel there is no
opportunity for advancement. (我覺得目前的工作,已經達到頂峰,即沒有陞遷機會。)
Q:How do you rate
yourself as a professional.(你如何評估自己是位專業人員呢?)
A: With my strong academic
background, I am capable and competent. (憑藉我良好的學術背景,我可以勝任自己的工作,而且我認為自己很有競爭力。)
A:With my teaching
experience, I am confident that I can relate to students very well. (依我的教學經驗,我相信能與學生相處的很好。)
Q: What contribution did you make
to your current (previous) organization?(你對目前/從前的工作單位有何貢獻?)
A: I have finished three new
projects, and I am sure I can apply my experience to this position. (我已經完成三個新項目,我相信我能將我的經驗用在這份工作上。)
Q:What do you think you are worth
to us?(你怎麼認為你對我們有價值呢?)
A:I feel I can make some positive
contributions to your company in the future. (我覺得我對貴公司能做些積極性的貢獻。)
Q:What make you think
you would be a success in this position? (你如何知道你能勝任這份工作?)
A:My graduate school
training combined with my internship should qualify me for
this particular job. I am sure I will be
successful. (我在研究所的訓練,加上實習工作,使我適合這份工作。我相信我能成功。)
Q:Are you a
multi-tasked individual?(你是一位可以同時承擔數項工作的人嗎?) or
Do you work well under stress or pressure?(你能承受工作上的壓力嗎?)
A:Yes, I think so.
A:The trait is needed
in my current(or previous) position and I know I can
handle it well. (這種特點就是我目前(先前)工作所需要的,我知道我能應付自如。)
Q:What is your strongest trait(s)?(你個性上最大的特點是什麼?)
A:Helpfulness and caring.(樂於助人和關心他人。)
A:Adaptability and sense of humor.(適應能力和幽默感。)
A:Cheerfulness and friendliness.(樂觀和友愛。)
Q: How would your
friends or colleagues describe you?(你的朋友或同事怎樣形容你?)
A: (pause a few
seconds) (稍等幾秒鐘再答,表示慎重考慮。)
They say Mr. Hsieh is an honest,
hardworking and responsible man who deeply cares for his family and friends. (他們說謝先生是位誠實、工作努力,負責任的人,他對家庭和朋友都很關心。)
A:They say Mr. Hsieh
is a friendly, sensitive, caring and determined person. (他們說謝先生是位很友好、敏感、關心他人和有決心的人。)
Q:What personality traits do you
admire?(你欣賞哪種性格的人?)
A: (I admire a person who is)honest, flexible and easy-going. (誠實、不死板而且容易相處的人。)
A: (I like) people who
possess the "can do" spirit. (有"實際行動"的人。)
Q:What leadership
qualities did you develop as an administrative personnel?(作為行政人員,你有什麼樣的領導才能?)
A:I feel that learning
how to motivate people and to work together as a team will
be the major goal of my leadership. (我覺得學習如何把人們的積極性調動起來,以及如何配合協同的團隊精神,是我行政工作的主要目標。)
A:I have refined my
management style by using an open-door policy. (我以開放式的政策,改進我的行政管理方式。)
Q:How do you normally handle
criticism?(你通常如何處理別人的批評?)
A:Silence is golden. Just don't
say anything; otherwise the situation could become
worse. I do, however, accept constructive criticism. (沈默是金。不必說什麼,否則情況更糟,不過我會接受建設性的批評。)
A:When we cool off, we will
discuss it later. (我會等大家冷靜下來再討論。)
Q: What do you find frustrating in
a work situation?(在工作中,什麼事令你不高興?)
A: Sometimes, the narrow-minded
people make me frustrated. (胸襟狹窄的人,有時使我洩氣。)
A:Minds that are not
receptive to new ideas. (不能接受新思想的那些取。)
Q:How do you handle your conflict
with your colleagues in your work? (你如何處理與同事在工作中的意見不和?)
A:I will try to present my ideas
in a more clear and civilized manner in order to get my points across. (我要以更清楚文明的方式,提出我的看法,使對方瞭解我的觀點。)
Q:How do you handle your failure?(你怎樣對待自己的失敗?)
A: None of us was born
"perfect". I am sure I will be given a second chance to correct my
mistake. (我們大家生來都不是十全十美的,我相信我有第二個機會改正我的錯誤。)
Q:What provide you with a sense of
accomplishment. (什麼會讓你有成就感?)
A:Doing my best job for your
company. (為貴公司竭力效勞。)
A:Finishing a project
to the best of my ability. (盡我所能,完成一個項目。)
Q:If you had a lot of money to
donate, where would you donate it to?Why?(假如你有很多錢可以捐贈,你會捐給什麼單位?為什麼?)
A:I would donate it to the medical
research because I want to do something to help others. (我會捐給醫藥研究,因為我要為他人做點事。)
A:I prefer to donate
it to educational institutions. (我樂意捐給教育機構。)
Q:What is most
important in your life right now?(眼下你生活中最重要的是什麼?)
A:To get a job in my
field is most important to me. (對我來說,能在這個領域找到工作是最重要的。)
A:To secure employment hopefully with your company.
(希望能在貴公司任職對我來說最重要。)
Q:What current issues concern you
the most?(目前什麼事是你最關心的?)
A:The general state of our economy
and the impact of China' entry to WTO on our industry. (目前中國經濟的總體情況以及中國入世對我們行業的影響。)
Q: How long would you like to stay
with this company?(你會在本公司服務多久呢?)
A: I will stay as long as I can
continue to learn and to grow in my field. (只要我能在我的行業力繼續學習和長進,我就會留在這裡。)
Q:Could you project what you would
like to be doing five years from now?(你能預料五年後你會做什麼嗎?)
A:As I have some administrative
experience in my last job, I may use my organizational and planning skills in
the future.
(我在上一個工作中積累了一些行政經驗,我將來也許要運用我組織和計劃上的經驗和技巧。)
訂閱:
文章 (Atom)