- 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.
|