USE [LLNET4] >>GO >>/****** Object: User [LLNETUSER] Script Date: 07/08/2009 18:06:22 ******/ >>CREATE USER [LLNETUSER] FOR LOGIN [LLNETUSER] WITH DEFAULT_SCHEMA=[dbo] >>GO >>/****** Object: Table [dbo].[Owners] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>CREATE TABLE [dbo].[Owners]( >> [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_Owners_Id] DEFAULT (newid()), >> [Name] [nvarchar](50) NULL, >> [Password] [nvarchar](50) NULL, >> CONSTRAINT [PK_Owners] PRIMARY KEY CLUSTERED >>( >> [Id] ASC >>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] >>) ON [PRIMARY] >>GO >>/****** Object: Table [dbo].[ProductFileData] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>SET ANSI_PADDING ON >>GO >>CREATE TABLE [dbo].[ProductFileData]( >> [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ProductFileData_Id] DEFAULT (newid()), >> [ProductFileColumnId] [uniqueidentifier] NULL, >> [ProductFileRowId] [uniqueidentifier] NULL, >> [ProductFileId] [uniqueidentifier] NULL, >> [ObjectData] [varbinary](max) NULL, >> [TextData] [nvarchar](max) NULL, >> CONSTRAINT [PK_ProductFileData] PRIMARY KEY CLUSTERED >>( >> [Id] ASC >>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] >>) ON [PRIMARY] >>GO >>SET ANSI_PADDING OFF >>GO >>/****** Object: Table [dbo].[VisualObjects] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>SET ANSI_PADDING ON >>GO >>CREATE TABLE [dbo].[VisualObjects]( >> [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_VisualObjects_Id] DEFAULT (newid()), >> [OwnerId] [uniqueidentifier] NULL, >> [ProductFileColumnId] [uniqueidentifier] NULL, >> [Name] [nvarchar](50) NULL, >> [Object] [varbinary](max) NULL, >> [ObjectType] [int] NULL, >> CONSTRAINT [PK_VisualObjects] PRIMARY KEY CLUSTERED >>( >> [Id] ASC >>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] >>) ON [PRIMARY] >>GO >>SET ANSI_PADDING OFF >>GO >>/****** Object: Table [dbo].[ProductFiles] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>CREATE TABLE [dbo].[ProductFiles]( >> [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ProductFiles_Id] DEFAULT (newid()), >> [OwnerId] [uniqueidentifier] NULL, >> [Name] [nvarchar](50) NULL, >> CONSTRAINT [PK_ProductFiles] PRIMARY KEY CLUSTERED >>( >> [Id] ASC >>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] >>) ON [PRIMARY] >>GO >>/****** Object: Table [dbo].[ProductFileColumns] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>CREATE TABLE [dbo].[ProductFileColumns]( >> [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_ProductFileColumns_Id] DEFAULT (newid()), >> [ProductFileId] [uniqueidentifier] NULL, >> [Name] [nvarchar](50) NULL, >> CONSTRAINT [PK_ProductFileColumns] PRIMARY KEY CLUSTERED >>( >> [Id] ASC >>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] >>) ON [PRIMARY] >>GO >>/****** Object: Trigger [AddProductDataRows] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>-- ============================================= >>-- Author: Viv Phillips >>-- Create date: 08/07/2009 >>-- Description: Add data records for each existing row and the added column(s) >>-- ============================================= >>CREATE TRIGGER [dbo].[AddProductDataRows] >> ON [dbo].[ProductFileColumns] >> AFTER INSERT >>AS >>BEGIN >> INSERT INTO ProductFileData >> (ProductFileColumnId,ProductFileRowId,ProductFileId) >> SELECT DISTINCT INSERTED.Id,ProductFileData.ProductFileRowId,INSERTED.ProductFileId >> FROM INSERTED INNER JOIN ProductFileData ON ProductFileData.ProductFileId = INSERTED.ProductFileId >>END >>GO >>/****** Object: StoredProcedure [dbo].[AddRow] Script Date: 07/08/2009 18:06:22 ******/ >>SET ANSI_NULLS ON >>GO >>SET QUOTED_IDENTIFIER ON >>GO >>-- ============================================= >>-- Author: <Author,,Name> >>-- Create date: <Create Date,,> >>-- Description: <Description,,> >>-- ============================================= >>CREATE PROCEDURE [dbo].[AddRow] >> @ProductFileId uniqueidentifier >>AS >>BEGIN >> DECLARE @newid uniqueidentifier >> SET @newid = NEWID() >> INSERT INTO ProductFileData >> (ProductFileId,ProductFileColumnId,ProductFileRowId) >> SELECT @ProductFileId,ProductFileColumns.Id,@newid FROM ProductFileColumns WHERE ProductFileColumns.ProductFileId = @ProductFileId >>END >>GO >>/****** Object: ForeignKey [FK_ProductFileColumns_ProductFiles] Script Date: 07/08/2009 18:06:22 ******/ >>ALTER TABLE [dbo].[ProductFileColumns] WITH CHECK ADD CONSTRAINT [FK_ProductFileColumns_ProductFiles] FOREIGN KEY([ProductFileId]) >>REFERENCES [dbo].[ProductFiles] ([Id]) >>ON DELETE CASCADE >>GO >>ALTER TABLE [dbo].[ProductFileColumns] CHECK CONSTRAINT [FK_ProductFileColumns_ProductFiles] >>GO >>/****** Object: ForeignKey [FK_ProductFileData_ProductFileColumns] Script Date: 07/08/2009 18:06:22 ******/ >>ALTER TABLE [dbo].[ProductFileData] WITH CHECK ADD CONSTRAINT [FK_ProductFileData_ProductFileColumns] FOREIGN KEY([ProductFileColumnId]) >>REFERENCES [dbo].[ProductFileColumns] ([Id]) >>ON DELETE CASCADE >>GO >>ALTER TABLE [dbo].[ProductFileData] CHECK CONSTRAINT [FK_ProductFileData_ProductFileColumns] >>GO >>/****** Object: ForeignKey [FK_ProductFiles_Owners] Script Date: 07/08/2009 18:06:22 ******/ >>ALTER TABLE [dbo].[ProductFiles] WITH CHECK ADD CONSTRAINT [FK_ProductFiles_Owners] FOREIGN KEY([OwnerId]) >>REFERENCES [dbo].[Owners] ([Id]) >>ON DELETE CASCADE >>GO >>ALTER TABLE [dbo].[ProductFiles] CHECK CONSTRAINT [FK_ProductFiles_Owners] >>GO >>/****** Object: ForeignKey [FK_VisualObjects_ProductFileColumns] Script Date: 07/08/2009 18:06:22 ******/ >>ALTER TABLE [dbo].[VisualObjects] WITH CHECK ADD CONSTRAINT [FK_VisualObjects_ProductFileColumns] FOREIGN KEY([ProductFileColumnId]) >>REFERENCES [dbo].[ProductFileColumns] ([Id]) >>ON DELETE CASCADE >>GO >>ALTER TABLE [dbo].[VisualObjects] CHECK CONSTRAINT [FK_VisualObjects_ProductFileColumns] >>GO>>The trigger here seems OK - but it still needs a ProductFileId field in ProductFileData which would not otherwise be neccessary....