首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

来:约束的写法

2012-03-12 
高手请进来:求一个约束的写法有tableA里面有c1,c2,c3三个字段,默认值都为null我想求一条约束的写法,能使能

高手请进来:求一个约束的写法
有tableA   里面有c1,c2,c3三个字段,默认值都为null

我想求一条约束的写法,能使能这个表的添加,修改操作时,c1,c2,c3这三个字段中,有且只有一个的值不为null.

谢谢大家。



[解决办法]
这种动态的约束,需要通过触发器实现。
[解决办法]
约束实现不了这样复杂的功能 只能通过触发器实现
[解决办法]
約束不行的,可以用觸發器實現,但個人認為沒有必要
像這種情況,在前台控制不更好嗎?為什么非得交給數據庫做呢?

[解决办法]
create TRIGGER trig_CheckNull
ON dbo.a
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
if exists(select top 1 C1 from inserted where isnull(isnull(isnull(c1,c2),c3),0)=0)
begin
rollback
raiserror( 'C1、C2和C3中至少一個不能為空 ',11,1)
end
-- Insert statements for trigger here

END
GO

热点排行