USE GO -- drop both CodeDes and Code tables IF OBJECT_ID('_Des', 'U') IS NOT NULL BEGIN DROP TABLE _Des END GO IF OBJECT_ID('_', 'U') IS NOT NULL BEGIN DROP TABLE _ END GO -- ** CODE TABLE ** -- -- create Code table CREATE TABLE _ ( _PK int IDENTITY(1,1) NOT NULL, Code nvarchar(x) NOT NULL, Sort int NOT NULL, IsActive bit NOT NULL, Db_Status nvarchar(1) NOT NULL, Db_InsDt smalldatetime NOT NULL, Db_InsUser nvarchar(50) NOT NULL, Db_UpdDt smalldatetime NULL, Db_UpdUser nvarchar(50) NULL, Db_Timestamp timestamp NOT NULL, CONSTRAINT PK__ PRIMARY KEY CLUSTERED(_PK ASC) ) GO -- define update trigger CREATE TRIGGER ut__ ON _ AFTER UPDATE AS BEGIN UPDATE _ SET Db_UpdDt = getdate(), Db_UpdUser = right(suser_sname(), 50), Db_Status = CASE WHEN isnull(i.Db_Status, '') = 'D' THEN 'D' ELSE 'U' END FROM inserted i WHERE _._PK = i._PK END GO -- set unique index on Code CREATE UNIQUE NONCLUSTERED INDEX IX____Unique_Code ON _ (Code ASC) GO -- set default-value constraints ALTER TABLE _ ADD CONSTRAINT DF___IsActive DEFAULT ((1)) FOR IsActive ALTER TABLE _ ADD CONSTRAINT DF___DbStatus DEFAULT ('I') FOR Db_Status ALTER TABLE _ ADD CONSTRAINT DF___DbInsDt DEFAULT (getdate()) FOR Db_InsDt ALTER TABLE _ ADD CONSTRAINT DF___DbInsUser DEFAULT (right(suser_sname(),(50))) FOR Db_InsUser GO -- ** CODE TABLE ** -- -- ** DESCRIPTION TABLE ** -- -- create CodeDes table CREATE TABLE _Des ( Des_PK int IDENTITY(1,1) NOT NULL, _FK int NOT NULL, Lang nvarchar(2) NOT NULL, Descr nvarchar(max) NULL, Db_Status nvarchar(1) NOT NULL, Db_InsDt smalldatetime NOT NULL, Db_InsUser nvarchar(50) NOT NULL, Db_UpdDt smalldatetime NULL, Db_UpdUser nvarchar(50) NULL, Db_Timestamp timestamp NOT NULL, CONSTRAINT PK__Des PRIMARY KEY CLUSTERED(Des_PK ASC) ) GO -- define update trigger CREATE TRIGGER ut__Des ON _Des AFTER UPDATE AS BEGIN UPDATE _Des SET Db_UpdDt = getdate(), Db_UpdUser = right(suser_sname(), 50), Db_Status = CASE WHEN isnull(i.Db_Status, '') = 'D' THEN 'D' ELSE 'U' END FROM inserted i WHERE _Des.Des_PK = i.Des_PK END GO -- set default-value constraints ALTER TABLE _Des ADD CONSTRAINT DF__Des_DbStatus DEFAULT ('I') FOR Db_Status ALTER TABLE _Des ADD CONSTRAINT DF__Des_DbInsDt DEFAULT (getdate()) FOR Db_InsDt ALTER TABLE _Des ADD CONSTRAINT DF__Des_DbInsUser DEFAULT (right(suser_sname(),(50))) FOR Db_InsUser GO -- set foreign-key constraints ALTER TABLE _Des WITH CHECK ADD CONSTRAINT FK__Des___ FOREIGN KEY(_FK) REFERENCES _ (_PK) ALTER TABLE _Des CHECK CONSTRAINT FK__Des___ GO -- ** DESCRIPTION TABLE ** --