Convert MYSQL Script To TSQL

2022-04-27

筆記如何將 MYSQL 的資料庫 Create & Insert Script 轉為 SQL Server 可以使用的 TSQL Script 😎

SQL Server Logo

說明

移除特殊符號

在 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',來處理大量的資料列與不對齊的資料列 😮

相關連結

SQL Server Integrated Service 初探

SQL Server 閃電般快速查詢指南⚡

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記