2017年10月31日 星期二

CHARACTER_SET_NAME是cp950,char還是可以存Big5中文字

雖然可以存繁體中文
還是建議使用nchar(10)可以存十個中文字
char(10)因中文字占 2Byte只能存五個中文字,通常長度10後端程式就當你可以存十個中文字



SELECT CHARACTER_SET_NAME,COLLATION_NAME, * FROM [INFORMATION_SCHEMA].[COLUMNS]
WHERE [TABLE_SCHEMA] = 'dbo'
AND [TABLE_NAME] ='Table1'

Chinese_Taiwan_Stroke_CS_AS => cp950

Chinese_Taiwan_Stroke_BIN => cp950

Latin1_General_100_BIN => iso_1

Chinese_PRC_Stroke_CS_AS => cp936

Chinese_Hong_Kong_Stroke_90_BIN2 => cp950


SELECT * FROM sys.fn_helpcollations()  
WHERE name LIKE 'Chinese_%'

Windows 定序
https://docs.microsoft.com/zh-tw/sql/t-sql/statements/windows-collation-name-transact-sql
SELECT * FROM sys.fn_helpcollations() WHERE name NOT LIKE 'SQL%'; 

SQL Server 定序
https://docs.microsoft.com/zh-tw/sql/t-sql/statements/sql-server-collation-name-transact-sql
SQL Server 支援 Windows 定序。 SQL Server 也支援有限數目 (小於80) 的定序,稱為 SQL Server 定序,這些定序是在 SQL Server 支援 Windows 定序之前開發。 為了回溯相容性, SQL Server 定序仍然受到支援,但是不應該用於新的開發工作。


SELECT  t1,CONVERT(VARBINARY, t1) AS t1BINARY,t2,CONVERT(VARBINARY, t2) AS t2BINARY
FROM Table1
 

參考資料:BIG5難字寫入資料庫(Unicode篇)
https://dotblogs.com.tw/stanley14/2015/11/11/153893

CNS11643碼表查詢
http://www.cns11643.gov.tw/AIDB/codetable_search.do

2D4E (欄位t1是nchar)

A4E5 (欄位t2是char)

延伸閱讀:
https://openhome.cc/Gossip/Encoding/UnicodeUTF.html
Windows記事本選擇「Unicode」時,實際上採用的是UCS-2/UTF-16 Little Endian
https://stackoverflow.com/questions/1379416/insert-utf8-data-into-a-sql-server-2008


2017年10月29日 星期日

Package migration from version 8 to version 6 failed

https://ssis2014downgrade.codeplex.com

可以搜尋dtsx找關鍵字PackageFormatVersion
SQL Server 2012是6,SQL Server 2014和SQL Server 2016是8
可以用SSIS2014 Downgrade工具降版成SQL Server 2012的dtsx
封裝檔就可以匯入SQL Server 2012

秀出TSQL語法剖析、編譯、執行時間

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
SET STATISTICS IO ON;
SET STATISTICS TIME ON;


http://www.cnblogs.com/hyqiang168/archive/2008/01/19/1045616.html
1.测试前用二条命令清除SQL Server的数据和过程缓冲区,以保证测试条件相同:
DBCC DROPCLEANBUFFERS和DBCC FREEPROCCACHE
2.SET STATISTICS TIME:看cpu时间   
3.SET STATISTICS IO:关注scan count(计数)------查询读取的表数量   logical read( 逻辑读)次数

2017年10月24日 星期二

忘記SQL Server的管理密碼

http://sharedderrick.blogspot.tw/2009/11/sa-windows-administrator-sql-serveri.html

以「單一使用者模式(single user mode)」來啟動 SQL Server 執行個體
命令提示字元
net start mssqlserver /m