create table product ( product_id int not null identity(1,1), the_product varchar(50) not null, is_deleted int not null default 0 ); create unique index ux_product on product(the_product) where is_deleted = 0; insert into product(the_product) values('keyboard'); insert into product(the_product) values('mouse'); update product set is_deleted = 1 where the_product = 'mouse'; -- insert into product(the_product) values('keyboard'); -- won't be allowed /* For all intents and purposes, the old mouse is deleted from the system, should still allow inserting new mouse. Prior to filtered index capability(available only on Sql Server 2008), having a unique column on table with marked deleted deleting strategy is an impossible implementation */ insert into product(the_product) values('mouse'); -- will be allowed
"Simplicity can't be bought later, it must be earned from the start" -- DB
Wednesday, January 19, 2011
Deletion strategy for Sql Server 2008
Labels:
SQL Server
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment