Convert MYSQL Script To TSQL
2022-04-27
筆記如何將 MYSQL 的資料庫 Create & Insert Script 轉為 SQL Server 可以使用的 TSQL Script 😎
說明
移除特殊符號
在 TSQL 不支援 MYSQL 使用的特殊符號 `
,MYSQL 會在資料庫名稱或者資料表使用此特殊符號,達到包字串的效果,但在 TSQL 不需要,因此全部取代移除。
資料型別
MYSQL 的 INT 可以定長度,但 TSQL 沒有這玩意兒,所以有長度的 INT 按資料的實際大小,取代為下列資料型別:
資料類型 | 數值範圍 | 空間 |
---|---|---|
BIGINT | ± 9,223,372,036,854,775,807 | 8 Bytes |
INT | ± 2147483647 | 4 Bytes |
SMALLINT | ± 32767 | 2 Bytes |
TINYINT | 0 - 255 | 1 Bytes |
BIT | 0, 1, null | 1 bits |
此外 MYSQL 同樣存在帶有長度的 SMALLINT 以及 TINYINT 直接對應修改,移除長度。
MYSQL 獨有使用 3 Bytes 的 MEDIUMINT,數值範圍為 ± 8388607,可以在 TSQL 中直接取代為 INT。
另外 MYSQL 會有 unsigned
的資料型別修飾,TSQL 沒有這玩意兒,直接果斷移除。
字串處理
注意如果要存放中文、日文字元,需要將 MYSQL 的 VARCHAR 改為 NVARCHAR 型別。
同時在 INSERT 資料時,需要主動加上 N
以正確的插入 Unicode 字元
INSERT INTO dbo.Table VALUES(1, N'はじめての日本語')
可以使用取代的技巧直接將 , '
取代為 , N'
,來處理大量的資料列與不對齊的資料列 😮