Sql server 2005 在接收到某个内容之前可以为空的字段?
如果表中有一个字段(外键),该字段可以接受null,直到其中有内容为止,因此在此之后该字段将拒绝null值 您将如何做到这一点?根据,触发器对于“扩展表之间的引用完整性”非常有用,而这正是您正试图做到的。因此,只需使用Sql server 2005 在接收到某个内容之前可以为空的字段?,sql-server-2005,Sql Server 2005,如果表中有一个字段(外键),该字段可以接受null,直到其中有内容为止,因此在此之后该字段将拒绝null值 您将如何做到这一点?根据,触发器对于“扩展表之间的引用完整性”非常有用,而这正是您正试图做到的。因此,只需使用进行更新触发器,并在旧值不为null而新值为null时引发错误 假设您有一个名为SomeId的int类型的可空列,并且您的表名为SomeTable,则以下触发器将执行此操作: CREATE TRIGGER CheckTrigger ON SomeTable FOR UPDATE A
进行更新
触发器,并在旧值不为null而新值为null时引发错误
假设您有一个名为SomeId
的int类型的可空列,并且您的表名为SomeTable
,则以下触发器将执行此操作:
CREATE TRIGGER CheckTrigger ON SomeTable
FOR UPDATE
AS
DECLARE @OldId int,
@NewId int
BEGIN
SELECT @OldId = SomeId FROM deleted
SELECT @NewId = SomeId FROM inserted
IF NOT @OldId IS NULL AND @NewId IS NULL
BEGIN
RAISERROR ('No!!!!', 10,1) WITH NOWAIT
ROLLBACK TRANSACTION
END
END;
在这种情况下,触发器是最好的选择。我想到的第一件事是创建一个触发器,它只在列为null而新值不为null时更新列