Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
fardeens
Starting Member
2 Posts |
Posted - 2006-01-31 : 12:16:23
|
| Hi All - I have some 12 odd tables, its basically a form say for e.g. like a resume, where various section can have more than one rows, like jobs, education etc. So I have created different tables where there would be more than one rows per record. I also have one field submit in the main table. Now what is required is once a person clicks submit we have a copy of all the fields in all the tables when the person clicked submit with timestamp. So a person can click submit 5 times, 10 times as many times as he wishes, we want to see changes between each submit. A kind of audit trail. I am aware you can use triggers to create duplicate records. But I am not sure how you can take a copy of all the records in different tables related one record in the main table when one field in the main table has changed.Any suggestions, directions welcomeMany thanks |
|
|
Kristen
Test
22859 Posts |
Posted - 2006-01-31 : 13:41:09
|
| You could set up a Trigger on the "main table" so that when it is saved the main table's row, and associated rows in all "child tables", are saved to audit tables [one audit table for each main table]. It would probably help if you had a "version number" column in your "main table" - but I suppose a date/time column would do instead (i.e. a "Last Updated" column).Kristen |
 |
|
|
X002548
Not Just a Number
15586 Posts |
|
|
Kristen
Test
22859 Posts |
Posted - 2006-01-31 : 14:03:59
|
| "I always use history tables to track changes. I never log the current row to history."I think I do that too, but can you clarify what you meant/do please Brett?kristen |
 |
|
|
X002548
Not Just a Number
15586 Posts |
|
|
Kristen
Test
22859 Posts |
Posted - 2006-01-31 : 15:13:41
|
| Snap!& capice. Ta.kristen |
 |
|
|
fardeens
Starting Member
2 Posts |
Posted - 2006-02-01 : 05:24:38
|
I am not sure if this would help. What I have done is a web-based application. Now the expected result is we are able to track the changes to objectives. See I create a page in ASP where all the entries in these tables are pulled together in the form of a form. Now what they want is they should be able to compare what these objectives were when they first submit, how did it change when they submitted the second time and so on. I hope I am making sense. objectives is the main table and the id in here is linked to theobjectiveid to all the other tables. There are more tables, I am listing just a few. CREATE TABLE [dbo].[Objectives] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [AccountableDirector] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ResponsibleManager] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DirectorateObjective] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PledgeNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PledgDescription] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PriorityNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PriorityDescription] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL , [CurResAll] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ExiResAde] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [AddResIde] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [s1c] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [s2c] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [s3c] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [s4c] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [s5c] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [submit] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [logons] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [expertadvice] [varchar] (2500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [actionplan] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [actives] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [completed] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GO CREATE TABLE [dbo].[AddResEss] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [ObjectiveID] [int] NULL , [HowMucReq] [numeric](19, 4) NULL , [HowWillSpent] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HowWillCont] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[AppendixC] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [Standard] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [StandardDesc] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Category] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Tstandard] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Checks] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[BetterHealth] ( [id] [int] IDENTITY (1, 1) NOT NULL , [ObjectiveID] [int] NULL , [BHID] [int] NULL , [BHNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [BHDesc] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Consult] ( [id] [int] IDENTITY (1, 1) NOT NULL , [objectiveid] [int] NULL , [whowillconsult] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [whenwillconsult] [datetime] NULL , [howwillconsult] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Directors] ( [DirectorID] [int] NOT NULL , [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Groups] ( [id] [int] IDENTITY (1, 1) NOT NULL , [area] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [groups] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [contact] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [logon] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[PerformanceIndicator] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [ObjectiveID] [int] NULL , [PerformanceIndicator] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PerformanceID] [int] NULL , [TypeofIndicator] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [LevelOfIndicator] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PDateToAchive] [datetime] NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Pledges] ( [Id] [int] IDENTITY (1, 1) NOT NULL , [PledgeID] [int] NOT NULL , [PledgeDesc] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Priorities] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [PledgeID] [int] NULL , [prioritynumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Priorities] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Adirectors] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PerformanceIndicators] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Standards] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Notes] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[Risks] ( [id] [int] IDENTITY (1, 1) NOT NULL , [objectiveid] [int] NULL , [Risk] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [classify] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ImpactRat] [smallint] NULL , [LikelihoodRat] [smallint] NULL , [ReasonforRating] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Score] [int] NULL , [RiskCategory] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [mitigate] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [lackofcontrol] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [IWhatmon] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [IWhatGroupMonOth] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [IWhatGroupMon] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [IFrequency] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EWhatmon] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EWhatGroupMonOth] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EWhatGroupMon] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EFrequency] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Lackofass] [varchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [control] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [assurance] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Pubdate] [datetime] NULL , [LastUpdated] [datetime] NULL ) ON [PRIMARY]GO |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
|
|
|
|
|
|
|