规则与check不同于:
可使用于多列,但每列只允许定义一次
check只用于一列 但一列可定义多个check
可用系统控制面板建立规则 用@x 来定义规则文本
Function:
例
//
定义相减的两列值函数 求Remain
CREATE FUNCTION CalcRemain ( @x decimal ( 6 , 0 ), @y decimal ( 6 , 0 ))
RETURNS decimal ( 6 , 0 ) AS
BEGIN
return ( @x - @y )
END
CREATE FUNCTION CalcRemain ( @x decimal ( 6 , 0 ), @y decimal ( 6 , 0 ))
RETURNS decimal ( 6 , 0 ) AS
BEGIN
return ( @x - @y )
END
规则和函数都必须要绑定列才能生效
Function 绑定:
Alter
table
Table_name
ADD RemainNum [ <-This is the Column name I make ]
AS
dbo.CalcRemain(Column_1,Column_2) [ 数据类型应保持一致 ]
go
-- ---
测试
-- ---
Select * from Table_name
-- 返回RemainNum的结果就是Column_1 - Column_2
---
也可直接调系统自定义函数
Select *,dbo.CalcRemain(Column_1,Column_2) as RemainNum from Table_name
ADD RemainNum [ <-This is the Column name I make ]
AS
dbo.CalcRemain(Column_1,Column_2) [ 数据类型应保持一致 ]
go
-- ---
测试
-- ---
Select * from Table_name
-- 返回RemainNum的结果就是Column_1 - Column_2
---
也可直接调系统自定义函数
Select *,dbo.CalcRemain(Column_1,Column_2) as RemainNum from Table_name
总觉得定义规则不如定义Check. 没有具体实战
Function应该是比较常用的 :)