Using tables and stored procedures
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table1]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Table1](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NULL,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Identity Integer Key',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Table1',
@level2type=N'COLUMN', @level2name=N'id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Name of something',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Table1',
@level2type=N'COLUMN', @level2name=N'name'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table1Log]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Table1Log](
[id] [int] IDENTITY(1,1) NOT NULL,
[table1_id] [int] NULL,
[name] [varchar](50) NULL,
CONSTRAINT [PK_Table1Log] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Identity Integer Key',
@level0type=N'SCHEMA', @level0name=N'dbo',
@level1type=N'TABLE', @level1name=N'Table1Log',
@level2type=N'COLUMN', @level2name=N'id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id from table1' ,
@level0type=N'SCHEMA', @level0name=N'dbo',
@level1type=N'TABLE', @level1name=N'Table1Log',
@level2type=N'COLUMN', @level2name=N'table1_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Name of something' ,
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE',
@level1name=N'Table1Log', @level2type=N'COLUMN', @level2name=N'name'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_Table1Delete]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_Table1Delete]
(
@id INT
) AS
-- Purpose:
-- Delete record on Test1 table
-- Parameters:
-- id -
-- History:
-- 08Mar2008 Clive Original coding
SET NOCOUNT ON
BEGIN TRANSACTION
INSERT INTO Table1Log(Table1_Id, NAME) SELECT Id, Name FROM Table1 WHERE id = @id
DELETE Table1 WHERE id = @id
COMMIT
RETURN
-------------- this is the end ----------------
'
END
Don't forget to click "Mark as Answer" on the post that helped you.
This credits that member, earns you a point and marks your thread as Resolved so we will all know you have been helped.