本文將介紹利用同義字縮短資料庫物件的名稱。
SQL Server 提供 Multipart Names 來表示物件,您可以利用下列任何一種方式來存取資料庫物件:
- server_name .[database_name].[schema_name].object_name
- database_name.[schema_name].object_name
- schema_name.object_name
- object_name
若是您想要以上述的第1至第3種命名方式來存取資料庫物件,又懶得打這麼長的名稱以及減少輸入錯誤的情況,可以透過建立同義字(SYNONYM)來為資料庫物件建立別名,同義字可以建立在下列幾種物件:
- 組件 (CLR) 預存程序
- 組件 (CLR) 資料表值函數
- 組件 (CLR) 純量函數
- 組件彙總 (CLR) 彙總函數
- 複寫篩選程序
- 擴充預存程序
- SQL 純量函數
- SQL 資料表值函數
- SQL 嵌入資料表值函數
- SQL 預存程序
- 檢視表
- 使用者自訂資料表
- 以下程式碼示範為 Northwind 的 Region 資料表建立同義字:
1: --建立Table的同義字
2: CREATE SYNONYM MyRegion
3: FOR Northwind.dbo.Region
4: GO
5: --使用同義字來查詢TABLE
6: SELECT *
7: FROM MyRegion
8: GO
- 以下程式碼示範利用動態 SQL 建立同義字,您也可以使用一般的 T-SQL 敘述建立同義字,並非一定得使用動態 SQL 。
1: --利用動態SQL建立同義字
2: EXEC ('CREATE SYNONYM MyView FOR dbo.v_region')
3: --使用同義字來查詢View
4: SELECT *
5: FROM MyView
【參考資料】