單值類型是與現存類型(它的
源
類型)共享其內部表示的用戶定義數據類型
但對於大多數運算來說
認為單值類型是獨立和不兼容的
例如
您可能想定義年齡類型
重量類型以及高度類型
所有這些類型都有相當不同的語義
但都使用內部數據類型 INTEGER 作為它們的內部表示
下列示例說明了命名為 PAY 的單值類型的創建
CREATE DISTINCT TYPE PAY AS DECIMAL(
) WITH COMPARISONS
雖然 PAY 有與內部數據類型 DECIMAL(
)相同的表示
但還是認為它是與 DECIMAL(
)或任何其他類型不可比的獨立類型
它只能與相同的單值類型比較
並且
會影響到按 DECIMAL 使用的運算符和函數將在此不適用
例如
具有 PAY 數據類型的值不能與具有 INTEGER 數據類型的值相乘
因此
您必須編寫只應用於 PAY 數據類型的函數
使用單值數據類型可限制偶然錯誤
例如
如果將 EMPLOYEE 表的 SALARY 列定義為 PAY 數據類型
則不能將該列添加至 COMM
即使它們的源類型相同
單值數據類型支持類型轉換
源類型可以轉換為單值數據類型
單值數據類型也可以轉換為源類型
例如
如果將表 EMPLOYEE 的 SALARY 列定義為 PAY 數據類型
則下列示例將不會在比較運算符處出錯
SELECT * FROM EMPLOYEE
WHERE DECIMAL(SALARY) =
DECIMAL(SALARY)返回一個十進制數據類型
相反地
數字數據類型可以轉換為 PAY 類型
例如
可以使用 PAY(
) 來轉換數字
的類型
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22117.html