- Deterministic and Nondeterministic Functions
- Deterministic functions
- Nondeterministic functions
- RAND() function
- WITH ENCRYPTION
- WITH SCHEMABINDING
Deterministic and Nondeterministic Functions
Deterministic functions
在定義的輸入值一樣,且 database 的狀態相同不變的條件下,不管呼叫幾次,總是回傳相同值,
e.g. SUM()、AVG()、SQUARE()、POWER()、COUNT()…etc.
所有 aggregate functions 都是 deterministic functions
Nondeterministic functions
在定義的輸入值一樣,且 database 的狀態相同不變的條件下,可能回傳不同值,
e.g. GetDate()、CURRENT_TIMESTAMP
RAND() function
Nondeterministic functions 的一種,
但若定義的輸入值為 seed value,則函數變成 deterministic,因為相同的 seed value 會返回相同的 value
WITH ENCRYPTION
用途
加密 functions
|
WITH SCHEMABINDING
SCHEMABINDING 將 function 綁定到 reference 的 database object,
必須要修改或刪除 function 以移除對 database object 的依賴
用途
限制 function reference 的 table schema 修改
注意
使用WITH SCHEMABINDING時,必須用 two-part name(schema.object) 指定 table 名稱
EX.
|