許多開發者在從 Microsoft Access 遷移至 SQL Server 時,會遇到欄位類型對應與預設值設定的差異。本文針對兩個最常見的問題提供解決方案:
Access 的「自動編號」欄位對應 SQL Server 的 IDENTITY 屬性。建立資料表時,可指定種子值與遞增值,例如 identity(1,1) 表示從 1 開始、每次遞增 1。
Access 使用 NOW() 取得目前日期時間,SQL Server 則使用 GETDATE() 函數。在資料表定義中可設定預設約束:DEFAULT (GETDATE())。
CREATE TABLE tbTest
(
[id] INT IDENTITY(1,1),
tm DATETIME DEFAULT GETDATE()
)
詳細語法說明請參考 SQL Server 線上叢書 (Books Online),其中提供完整的 IDENTITY 與 DEFAULT 約束文件。