Update CMS Script

From Logic Wiki
Jump to: navigation, search


PrintLargeText_SP.sql

/************************************************
LARGE TEXT PRINT WORKAROUND 
*************************************************/
--IF EXISTS ( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'PrintLargeText') AND type IN ( N'P', N'PC' ) ) 
--BEGIN 
--	DROP PROCEDURE PrintLargeText
--END


CREATE PROCEDURE [dbo].[PrintLargeText]
	@TextToPrint nvarchar(MAX)
AS
BEGIN

	DECLARE @String NVARCHAR(MAX);
	SET @String = @TextToPrint;
	DECLARE @CurrentEnd BIGINT; /* track the length of the next substring */
	DECLARE @offset tinyint; /*tracks the amount of offset needed */
	set @string = replace(  replace(@string, char(13) + char(10), char(10))   , char(13), char(10))

	WHILE LEN(@String) > 1
	BEGIN
		IF CHARINDEX(CHAR(10), @String) between 1 AND 4000
		BEGIN
			   SET @CurrentEnd =  CHARINDEX(char(10), @String) -1
			   set @offset = 2
		END
		ELSE
		BEGIN
			   SET @CurrentEnd = 4000
				set @offset = 1
		END   
		PRINT SUBSTRING(@String, 1, @CurrentEnd) 
		set @string = SUBSTRING(@String, @CurrentEnd+@offset, LEN(@String))   
	END /*End While loop*/
 
	END; 

Updater.sql


DECLARE @DeleteBeforeWrite BIT;
DECLARE @DeleteAboveIdentityStartAt BIT;
DECLARE @TargetApplicationId INT;
DECLARE @IdentityStartAt INT
DECLARE @RecordCounter INT = 0;
DECLARE @LongText NVARCHAR(MAX);
/***************************************************
Please set these 3 variables below
***************************************************/
SET @TargetApplicationId = 10; 
SET @DeleteBeforeWrite = 1 ; -- If you want to delete existing records of given application ID in target database change this to 1 
SET @DeleteAboveIdentityStartAt = 0;
SET @IdentityStartAt = 100000;

USE VDSCore   -- Change Database name if necessary

/**************************************************/
BEGIN /* Author table variables */
	DECLARE @AutAuthorId	bigint	;
	DECLARE @AutFirstname	nvarchar(100)	;
	DECLARE @AutLastname	nvarchar(100)	;
	DECLARE @AutImageId	bigint	;
	DECLARE @AutBio	nvarchar(MAX)	;
	DECLARE @AutSlug	nvarchar(50)	;
	DECLARE @AutApplicationId	bigint	;
	DECLARE @AutCreatedById	bigint	;
	DECLARE @AutDateCreated	datetime	;
	DECLARE @AutUpdatedById	bigint	;
	DECLARE @AutDateUpdated	datetime	;
	DECLARE @AutIsDeleted	bit	;
END
BEGIN /* Comments */
	DECLARE @ComCommentId	bigint	;
	DECLARE @ComNewsId	bigint	;
	DECLARE @ComDate	datetime	;
	DECLARE @ComName	nvarchar(100)	;
	DECLARE @ComEmail	nvarchar(250)	;
	DECLARE @ComBody	nvarchar(MAX)	;
	DECLARE @ComApproved	bit	;
	DECLARE @ComApplicationId	bigint	;
	DECLARE @ComCreatedById	bigint	;
	DECLARE @ComDateCreated	datetime	;
	DECLARE @ComUpdatedById	bigint	;
	DECLARE @ComDateUpdated	datetime	;
	DECLARE @ComIsDeleted	bit	;
END
BEGIN  /* NewsItem */
	DECLARE @NINewsItemId	bigint	;
	DECLARE @NINewsId	bigint	;
	DECLARE @NIType	int	;
	DECLARE @NIRevealTitle	nvarchar(100)	;
	DECLARE @NIRevealOpen	bit	;
	DECLARE @NIData	nvarchar(MAX)	;
	DECLARE @NIPosition	int	;
	DECLARE @NIApplicationId	bigint	;
	DECLARE @NICreatedById	bigint	;
	DECLARE @NIDateCreated	datetime	;
	DECLARE @NIUpdatedById	bigint	;
	DECLARE @NIDateUpdated	datetime	;
	DECLARE @NIIsDeleted	bit	;
END
BEGIN  /* News */
	DECLARE @NewsNewsId	bigint	;
	DECLARE @NewsAuthorId	bigint	;
	DECLARE @NewsCategoryId	bigint	;
	DECLARE @NewsTitle	nvarchar(100)	;
	DECLARE @NewsSummary	nvarchar(1000)	;
	DECLARE @NewsPublished	datetime	;
	DECLARE @NewsTags	nvarchar(MAX)	;
	DECLARE @NewsSlug	nvarchar(50)	;
	DECLARE @NewsImageId	bigint	;
	DECLARE @NewsIsPublished	bit	;
	DECLARE @NewsApplicationId	bigint	;
	DECLARE @NewsCreatedById	bigint	;
	DECLARE @NewsDateCreated	datetime	;
	DECLARE @NewsUpdatedById	bigint	;
	DECLARE @NewsDateUpdated	datetime	;
	DECLARE @NewsIsDeleted	bit	;
END
BEGIN /*Content*/
	DECLARE @ContentId	bigint	;
	DECLARE @ParentId	bigint	;
	DECLARE @Title	nvarchar(100)	;
	DECLARE @NavTitle	nvarchar(50)	;
	DECLARE @SubTitle	nvarchar(1000)	;
	DECLARE @Slug	nvarchar(100)	;
	DECLARE @IsPublic	bit	;
	DECLARE @ImageId	bigint	;
	DECLARE @BannerImageId	bigint	;
	DECLARE @BrowserTitle	nvarchar(1000)	;
	DECLARE @MetaDescription	nvarchar(MAX)	;
	DECLARE @MetaKeywords	nvarchar(1000)	;
	DECLARE @DoNotIndex	bit	;
	DECLARE @Position	int	;
	DECLARE @IsMenuItem	bit	;
	DECLARE @IsPublished	bit	;
	DECLARE @ApplicationId	bigint	;
	DECLARE @CreatedById	bigint	;
	DECLARE @DateCreated	datetime	;
	DECLARE @UpdatedById	bigint	;
	DECLARE @DateUpdated	datetime	;
	DECLARE @IsDeleted	bit	;

END
BEGIN /*contentItem  */
	DECLARE @CI_ContentItemId	bigint	;
	DECLARE @CI_ContentId	bigint	;
	DECLARE @CI_Type	int	;
	DECLARE @CI_RevealTitle	nvarchar(100)	;
	DECLARE @CI_RevealOpen	bit	;
	DECLARE @CI_Data  nvarchar(MAX)	;
	DECLARE @CI_Position	int	;
	DECLARE @CI_ApplicationId	bigint	;
	DECLARE @CI_CreatedById	bigint	;
	DECLARE @CI_DateCreated	datetime	;
	DECLARE @CI_UpdatedById	bigint	;
	DECLARE @CI_DateUpdated	datetime	;
	DECLARE @CI_IsDeleted	bit	;
END
BEGIN /*ContentSideBarItem table variables*/
	DECLARE @CSB_ContentSideBarItemId	bigint	;
	DECLARE @CSB_ContentId	bigint	;
	DECLARE @CSB_SideBarItemId	bigint	;
	DECLARE @CSB_Position	int	;
	DECLARE @CSB_ApplicationId	bigint	;
	DECLARE @CSB_CreatedById	bigint	;
	DECLARE @CSB_DateCreated	datetime	;
	DECLARE @CSB_UpdatedById	bigint	;
	DECLARE @CSB_DateUpdated	datetime	;
	DECLARE @CSB_IsDeleted	bit	;
END
BEGIN /*Image table variables */
	DECLARE @ImgImageId	bigint	;
	DECLARE @ImgTitle	nvarchar(50)	;
	DECLARE @ImgCategoryId	bigint	;
	DECLARE @ImgFilePath	nvarchar(1000)	;
	DECLARE @ImgCaption	nvarchar(MAX)	;
	DECLARE @ImgWidth	int	;
	DECLARE @ImgHeight	int	;
	DECLARE @ImgFileSize	bigint	;
	DECLARE @ImgApplicationId	bigint	;
	DECLARE @ImgCreatedById	bigint	;
	DECLARE @ImgDateCreated	datetime	;
	DECLARE @ImgUpdatedById	bigint	;
	DECLARE @ImgDateUpdated	datetime	;
	DECLARE @ImgIsDeleted	bit	;
END
BEGIN /* Variables table variable */
	DECLARE @VarVariableId	bigint	;
	DECLARE @VarTitle	nvarchar(50)	;
	DECLARE @VarType	int	;
	DECLARE @VarValue	nvarchar(MAX)	;
	DECLARE @VarApplicationId	bigint	;
	DECLARE @VarCreatedById	bigint	;
	DECLARE @VarDateCreated	datetime	;
	DECLARE @VarUpdatedById	bigint	;
	DECLARE @VarDateUpdated	datetime	;
	DECLARE @VarIsDeleted	bit	;
END
BEGIN /* Categories */
	DECLARE @CatCategoryId	bigint	;
	DECLARE @CatTitle	nvarchar(50)	;
	DECLARE @CatType	char(1)	;
	DECLARE @CatSlug	nvarchar(50)	;
	DECLARE @CatApplicationId	bigint	;
	DECLARE @CatCreatedById	bigint	;
	DECLARE @CatDateCreated	datetime	;
	DECLARE @CatUpdatedById	bigint	;
	DECLARE @CatDateUpdated	datetime	;
	DECLARE @CatIsDeleted	bit	;
END
BEGIN /*Resources */
	DECLARE @ResResourceId	bigint	;
	DECLARE @ResCategoryId	bigint	;
	DECLARE @ResTitle	nvarchar(100)	;
	DECLARE @ResSummary	nvarchar(MAX)	;
	DECLARE @ResFilePath	nvarchar(500)	;
	DECLARE @ResFileType	nvarchar(10)	;
	DECLARE @ResFileSize	bigint	;
	DECLARE @ResApplicationId	bigint	;
	DECLARE @ResCreatedById	bigint	;
	DECLARE @ResDateCreated	datetime	;
	DECLARE @ResUpdatedById	bigint	;
	DECLARE @ResDateUpdated	datetime	;
	DECLARE @ResIsDeleted	bit	;
END
BEGIN /* SideBarItem */
	DECLARE @SbSideBarItemId	bigint	;
	DECLARE @SbTitle	nvarchar(100)	;
	DECLARE @SbBody	nvarchar(1000)	;
	DECLARE @SbLinkUrl	nvarchar(500)	;
	DECLARE @SbHtml	nvarchar(MAX)	;
	DECLARE @SbType	int	;
	DECLARE @SbImageId	bigint	;
	DECLARE @SbApplicationId	bigint	;
	DECLARE @SbCreatedById	bigint	;
	DECLARE @SbDateCreated	datetime	;
	DECLARE @SbUpdatedById	bigint	;
	DECLARE @SbDateUpdated	datetime	;
	DECLARE @SbIsDeleted	bit	;
END

/******************************/
PRINT 'DECLARE @ID INT;'
PRINT 'DECLARE @CurrentIdentitySeed INT;'
PRINT 'SET XACT_ABORT ON'
PRINT 'BEGIN TRANSACTION UpdateCms'
IF (@DeleteBeforeWrite = 1)
BEGIN
	--PRINT 'UPDATE [cms_Author] SET ImageId = NULL WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId);

	--PRINT 'DELETE FROM cms_Comment WHERE ApplicationId =  ' + CONVERT(VARCHAR(50), @TargetApplicationId);
	--PRINT 'DELETE FROM cms_NewsItem WHERE NewsId IN (SELECT NewsId FROM cms_News WHERE ApplicationId = 1 ' + CONVERT(VARCHAR(50), @TargetApplicationId) +')';
	--PRINT 'DELETE FROM cms_News WHERE ApplicationId =  ' + CONVERT(VARCHAR(50), @TargetApplicationId);

	PRINT 'DELETE FROM [cms_ContentItem] WHERE ContentId IN (SELECT ContentId FROM [cms_Content] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId)   + ')';
		IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND ContentItemId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'DELETE FROM [cms_ContentSideBarItem] WHERE ContentId IN (SELECT ContentId FROM [cms_Content] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId) + ')';
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND ContentSideBarItemId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'DELETE FROM [cms_Content] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId);
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND ContentId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'UPDATE cms_Author SET ImageId = null WHERE ApplicationId = ' +  CONVERT(VARCHAR(50), @TargetApplicationId);
	PRINT 'UPDATE cms_News SET ImageId = null WHERE ApplicationId = ' +  CONVERT(VARCHAR(50), @TargetApplicationId);
	PRINT 'UPDATE cms_SideBarItem SET ImageId = null WHERE ApplicationId = ' +  CONVERT(VARCHAR(50), @TargetApplicationId);
	PRINT 'ALTER TABLE [dbo].[cms_Author] DROP CONSTRAINT [FK_Author_Image]'
	
	PRINT 'DELETE FROM [cms_Image] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId)  
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND ImageId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'ALTER TABLE [dbo].[cms_Author]  WITH NOCHECK ADD  CONSTRAINT [FK_Author_Image] FOREIGN KEY([ImageId]) REFERENCES [dbo].[cms_Image] ([ImageId])'
	PRINT 'ALTER TABLE [dbo].[cms_Author] CHECK CONSTRAINT [FK_Author_Image]'
	

	PRINT 'DELETE FROM [cms_Variable] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId);
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND VariableId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'DELETE FROM [cms_Category] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId) + ' AND CategoryId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND CategoryId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'DELETE FROM [cms_Resource] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId);
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND ResourceId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END

	PRINT 'DELETE FROM [cms_SideBarItem] WHERE ApplicationId = ' + CONVERT(VARCHAR(50), @TargetApplicationId);
	IF (@DeleteAboveIdentityStartAt = 1)
	BEGIN
		PRINT ' AND SideBarItemId >= ' + CONVERT(VARCHAR(50), @IdentityStartAt);
	END
END	

/******************
Category 
******************/
BEGIN
	DECLARE category_cursor CURSOR FAST_FORWARD
		FOR SELECT CategoryId, Title, Type, Slug, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_Category] WHERE ApplicationId = @TargetApplicationId
	OPEN category_cursor
	FETCH NEXT FROM category_cursor INTO @CatCategoryId, @CatTitle, @CatType, @CatSlug, @CatApplicationId, @CatCreatedById, @CatDateCreated, @CatUpdatedById, @CatDateUpdated, @CatIsDeleted
	PRINT 'SELECT  @CurrentIdentitySeed = MAX(CategoryId)  FROM cms_Category  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_SideBarItem] OFF';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_ContentSideBarItem] OFF';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Category] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : '  + CONVERT(VARCHAR(50), @VarVariableId) + ' - ' +  @VarTitle;
		PRINT 'INSERT [dbo].[cms_Category] ([CategoryId], [Title], [Type], [Slug], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES ( ' + CONVERT(VARCHAR(50), @CatCategoryId + @IdentityStartAt) + ',''' + @CatTitle + ''',''' +  @CatType +  ''', ''' + @CatSlug + ''',' + 
			   CONVERT(VARCHAR(50), @CatApplicationId) + ', ' +
			   CASE 
					WHEN @CatCreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CatCreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @CatDateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @CatUpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CatUpdatedById) 
				END
				+
				 CASE 
					WHEN @CatDateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @CatDateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @CatIsDeleted) + ');';

		FETCH NEXT FROM category_cursor INTO @CatCategoryId, @CatTitle, @CatType, @CatSlug, @CatApplicationId, @CatCreatedById, @CatDateCreated, @CatUpdatedById, @CatDateUpdated, @CatIsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Category] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_Category'', reseed, @CurrentIdentitySeed)';
	CLOSE category_cursor;
	DEALLOCATE category_cursor;
END
/******************
Image 
******************/
BEGIN
	DECLARE image_cursor CURSOR FAST_FORWARD
		FOR SELECT ImageId, Title, CategoryId, FilePath, Caption, Width, Height, FileSize, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_Image] WHERE ApplicationId = @TargetApplicationId
	OPEN image_cursor
	FETCH NEXT FROM image_cursor INTO  @ImgImageId, @ImgTitle, @ImgCategoryId, @ImgFilePath, @ImgCaption, @ImgWidth, @ImgHeight, @ImgFileSize, @ImgApplicationId, @ImgCreatedById, @ImgDateCreated, @ImgUpdatedById, @ImgDateUpdated, @ImgIsDeleted
	PRINT 'SELECT  @CurrentIdentitySeed = MAX(ImageId)  FROM cms_Image  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Image] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : '  + CONVERT(VARCHAR(50), @ImgImageId) + ' - ' +  @ImgTitle;
		PRINT 'INSERT [dbo].[cms_Image] ([ImageId], [Title], [CategoryId], [FilePath], [Caption], [Width], [Height], [FileSize], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES ( ' + CONVERT(VARCHAR(50), @ImgImageId + @IdentityStartAt)   + ',''' + @ImgTitle + ''',' + CONVERT(VARCHAR(50), @ImgCategoryId + @IdentityStartAt) +  ', ''' + @ImgFilePath + ''',''' + 
				CASE 
					WHEN @ImgCaption IS NULL THEN 'NULL'
					ELSE @ImgCaption
				END
				 + ''',' +
				CASE 
					WHEN @ImgWidth IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @ImgWidth) 
				END
				+ ', ' +
				CASE 
					WHEN @ImgHeight IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @ImgHeight) 
				END
				+ ', ' +
				CASE 
					WHEN @ImgFileSize IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @ImgFileSize) 
				END
				+ ', ' +
			   CONVERT(VARCHAR(50), @TargetApplicationId) + ', ' +
			   CASE 
					WHEN @ImgCreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @ImgCreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @ImgDateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @ImgUpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @ImgUpdatedById) 
				END
				+
				 CASE 
					WHEN @ImgDateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @ImgDateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @ImgIsDeleted) + ');';

		FETCH NEXT FROM image_cursor INTO  @ImgImageId, @ImgTitle, @ImgCategoryId, @ImgFilePath, @ImgCaption, @ImgWidth, @ImgHeight, @ImgFileSize, @ImgApplicationId, @ImgCreatedById, @ImgDateCreated, @ImgUpdatedById, @ImgDateUpdated, @ImgIsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Image] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_Image'', reseed, @CurrentIdentitySeed)';
	CLOSE image_cursor;
	DEALLOCATE image_cursor; 
END
/******************
Variables 
******************/
BEGIN
	DECLARE variable_cursor CURSOR FAST_FORWARD
		FOR SELECT VariableId, Title, Type, Value, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_Variable] WHERE ApplicationId = @TargetApplicationId
	OPEN variable_cursor
	FETCH NEXT FROM variable_cursor INTO @VarVariableId, @VarTitle, @VarType, @VarValue, @VarApplicationId, @VarCreatedById, @VarDateCreated, @VarUpdatedById, @VarDateUpdated, @VarIsDeleted
	PRINT 'SELECT  @CurrentIdentitySeed = MAX(VariableId)  FROM cms_Variable  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Variable] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : '  + CONVERT(VARCHAR(50), @VarVariableId) + ' - ' +  @VarTitle;
		PRINT 'INSERT [dbo].[cms_Variable] ([VariableId], [Title], [Type], [Value], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES ( ' +  CONVERT(VARCHAR(50), @VarVariableId + @IdentityStartAt)  + ',''' + @VarTitle + ''',' + CONVERT(VARCHAR(50), @VarType) +  ', ''' + @VarValue + ''',' + 
			   CONVERT(VARCHAR(50), @TargetApplicationId) + ', ' +
			   CASE 
					WHEN @VarCreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @VarCreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @VarDateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @VarUpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @VarUpdatedById) 
				END
				+
				 CASE 
					WHEN @VarDateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @VarDateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @VarIsDeleted) + ');';

		FETCH NEXT FROM variable_cursor INTO @VarVariableId, @VarTitle, @VarType, @VarValue, @VarApplicationId, @VarCreatedById, @VarDateCreated, @VarUpdatedById, @VarDateUpdated, @VarIsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Variable] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_Variable'', reseed, @CurrentIdentitySeed)';
	CLOSE variable_cursor;
	DEALLOCATE variable_cursor;
END
/******************
Resources 
******************/
BEGIN
	DECLARE resource_cursor CURSOR FAST_FORWARD
		FOR SELECT  ResourceId, categoryid, title, summary, filepath, filetype, filesize, applicationid, createdbyid, datecreated, updatedbyid, dateupdated, isdeleted 
			 FROM [cms_Resource] WHERE ApplicationId = @TargetApplicationId
	OPEN resource_cursor
	FETCH NEXT FROM resource_cursor INTO  @ResResourceId, @Rescategoryid, @Restitle, @Ressummary, @Resfilepath, @Resfiletype, @Resfilesize, @Resapplicationid, @Rescreatedbyid, @Resdatecreated, 
	@Resupdatedbyid, @Resdateupdated, @Resisdeleted
	PRINT 'SELECT  @CurrentIdentitySeed = MAX(ResourceId)  FROM cms_Resource  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Resource] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : '  + CONVERT(VARCHAR(50), @VarVariableId) + ' - ' +  @VarTitle;
		PRINT 'INSERT [dbo].[cms_Resource] ([ResourceId], [categoryid], [title], [summary], [filepath], [filetype], [filesize], [applicationid], [createdbyid], [datecreated], [updatedbyid], [dateupdated], [isdeleted])'; 
				PRINT '		VALUES ( ' + CONVERT(VARCHAR(50), @ResResourceId + @IdentityStartAt) + 
				', ' +  CONVERT(VARCHAR(50), @Rescategoryid + @IdentityStartAt) + 
				',''' + @Restitle + ''',''' +  ISNULL(@Ressummary, 'NULL') +  ''', ''' + @Resfilepath + ''',  ''' + ISNULL(@Resfiletype, 'NULL') + ''',' + 
				CONVERT(VARCHAR(50), @Resfilesize) + ', ' +
			   CONVERT(VARCHAR(50), @Resapplicationid) + ', ' +
			   CASE 
					WHEN @Rescreatedbyid IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @Rescreatedbyid) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @Resdatecreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @Resupdatedbyid IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @Resupdatedbyid) 
				END
				+
				 CASE 
					WHEN @Resdateupdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @Resdateupdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @Resisdeleted) + ');';

		FETCH NEXT FROM resource_cursor INTO @ResResourceId, @Rescategoryid, @Restitle, @Ressummary, @Resfilepath, @Resfiletype, @Resfilesize, @Resapplicationid, @Rescreatedbyid, @Resdatecreated, @Resupdatedbyid, @Resdateupdated, @Resisdeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Resource] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_Resource'', reseed, @CurrentIdentitySeed)';
	CLOSE resource_cursor;
	DEALLOCATE resource_cursor;
END

/******************
Content 
******************/
BEGIN
	DECLARE content_cursor CURSOR FAST_FORWARD
		FOR SELECT ContentId, ParentId, Title, NavTitle, SubTitle, Slug, IsPublic, ImageId, BannerImageId, BrowserTitle, MetaDescription, MetaKeywords, DoNotIndex, 
				   Position, IsMenuItem, IsPublished, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_Content] WHERE ApplicationId = @TargetApplicationId
	OPEN content_cursor
	FETCH NEXT FROM content_cursor INTO  @ContentId, @ParentId, @Title, @NavTitle, @SubTitle, @Slug, @IsPublic, @ImageId, @BannerImageId, @BrowserTitle, @MetaDescription, @MetaKeywords, @DoNotIndex, 
					@Position, @IsMenuItem, @IsPublished, @ApplicationId, @CreatedById, @DateCreated, @UpdatedById, @DateUpdated, @IsDeleted

	PRINT 'SELECT  @CurrentIdentitySeed = MAX(ContentId)  FROM cms_Content  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Content] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : ' +  @Slug;

		PRINT 'INSERT [dbo].[cms_Content] ([ContentId], [ParentId], [Title], [NavTitle], [SubTitle], [Slug], [IsPublic], [ImageId], [BannerImageId], [BrowserTitle], [MetaDescription], [MetaKeywords], [DoNotIndex], [Position], [IsMenuItem], [IsPublished], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
		PRINT ' VALUES (' +  CONVERT(VARCHAR(50), @ContentId + @IdentityStartAt) + ',' +
		CASE 
			WHEN @ParentId IS NULL THEN 'NULL'
			ELSE CONVERT(VARCHAR(50), @ParentId + @IdentityStartAt) 
		END 
		+ ', ' + 
		'''' + REPLACE(@Title, '''', '''''') + ''', '''+ REPLACE(@NavTitle, '''', '''''') + ''', ''' + REPLACE(@SubTitle, '''', '''''') + ''', ''' + @Slug + ''', ' ;
		PRINT CONVERT(VARCHAR(50), @IsPublic) + ', ' + 
		CASE 
			WHEN @ImageId IS NULL THEN 'NULL'
			ELSE CONVERT(VARCHAR(50), @ImageId + @IdentityStartAt) 
		END
		 + ', ' +
		CASE 
			WHEN @BannerImageId IS NULL THEN 'NULL'
			ELSE CONVERT(VARCHAR(50), @BannerImageId + @IdentityStartAt) 
		END
		  + ', ''' +  
		CASE 
			WHEN @BrowserTitle IS NULL THEN 'NULL'
			ELSE @BrowserTitle
		END
		 + ''', ''' + 
		CASE 
			WHEN @MetaDescription IS NULL THEN 'NULL'
			ELSE @MetaDescription
		END
		 + ''', ''' + 
		CASE 
			WHEN @MetaKeywords IS NULL THEN 'NULL'
			ELSE @MetaKeywords
		END
		  + ''', ' + CONVERT(VARCHAR(50), @DoNotIndex) + ', ' +
		 CONVERT(VARCHAR(50), @Position) + ', ' + CONVERT(VARCHAR(50), @IsMenuItem) + ', ' + CONVERT(VARCHAR(50), @IsPublished) + ', ' + CONVERT(VARCHAR(50), @TargetApplicationId) + ', ' + 
		CASE 
			WHEN @CreatedById IS NULL THEN 'NULL'
			ELSE CONVERT(VARCHAR(50), @CreatedById) 
		END
		 + ', CAST(N''' +  CONVERT(VARCHAR(50), @DateCreated) + ''' AS DateTime), ' +   
		CASE 
			WHEN @UpdatedById IS NULL THEN 'NULL'
			ELSE CONVERT(VARCHAR(50), @UpdatedById) 
		END
		+
		 CASE 
			WHEN @DateUpdated IS NULL THEN ', NULL '
			ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @DateUpdated) + ''' AS DateTime) '
		END
		+ ', ' + CONVERT(VARCHAR(50), @IsDeleted) + ');';

		FETCH NEXT FROM content_cursor INTO  @ContentId, @ParentId, @Title, @NavTitle, @SubTitle, @Slug, @IsPublic, @ImageId, @BannerImageId, @BrowserTitle, @MetaDescription, @MetaKeywords, @DoNotIndex, 
					@Position, @IsMenuItem, @IsPublished, @ApplicationId, @CreatedById, @DateCreated, @UpdatedById, @DateUpdated, @IsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_Content] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_Content'', reseed, @CurrentIdentitySeed)';
	CLOSE content_cursor;
	DEALLOCATE content_cursor;
END
/******************
ContentItem
******************/
BEGIN
	DECLARE content_item_cursor CURSOR FAST_FORWARD
		FOR SELECT ContentItemId, ContentId, Type, RevealTitle, RevealOpen, Data, Position, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_ContentItem] WHERE ContentId IN (SELECT ContentId FROM cms_Content WHERE ApplicationId = @ApplicationId)
		OPEN content_item_cursor
			FETCH NEXT FROM content_item_cursor INTO  @CI_ContentItemId, @CI_ContentId, @CI_Type, @CI_RevealTitle, @CI_RevealOpen, @CI_Data, @CI_Position, @CI_ApplicationId, @CI_CreatedById, @CI_DateCreated, @CI_UpdatedById, @CI_DateUpdated, @CI_IsDeleted

	PRINT 'SELECT  @CurrentIdentitySeed = MAX(ContentItemId)  FROM cms_ContentItem  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_ContentItem] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : ' +  CONVERT(VARCHAR(50), @CI_ContentItemId);

		PRINT '		INSERT [dbo].[cms_ContentItem] ([ContentItemId], [ContentId], [Type], [RevealTitle], [RevealOpen], [Data], [Position], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES (' +  CONVERT(VARCHAR(50), @CI_ContentItemId + @IdentityStartAt) + ', ' + CONVERT(VARCHAR(50), @CI_ContentId + @IdentityStartAt)  + ', ' + 
					CONVERT(VARCHAR(50), @CI_Type) +  ', ''' + REPLACE(@CI_RevealTitle,'''', '''''') + 
					''',' +  CONVERT(VARCHAR(50), @CI_RevealOpen) + ', ''' 
					SET @LongText =  REPLACE(@CI_Data ,'''', '''''');
					exec dbo.PrintLargeText @TextToPrint  = @LongText ;
					PRINT ''', ' + CONVERT(VARCHAR(50), @CI_Position) + ', ' + CONVERT(VARCHAR(50), @TargetApplicationId) + ', ' + 
				CASE 
					WHEN @CI_CreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CI_CreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @CI_DateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @CI_UpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CI_UpdatedById) 
				END
				+
				 CASE 
					WHEN @CI_DateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @CI_DateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @CI_IsDeleted) + ');';



		FETCH NEXT FROM content_item_cursor INTO  @CI_ContentItemId, @CI_ContentId, @CI_Type, @CI_RevealTitle, @CI_RevealOpen, @CI_Data, @CI_Position, @CI_ApplicationId, @CI_CreatedById, @CI_DateCreated, @CI_UpdatedById, @CI_DateUpdated, @CI_IsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_ContentItem] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_ContentItem'', reseed, @CurrentIdentitySeed)';
	CLOSE content_item_cursor;
	DEALLOCATE content_item_cursor;

	PRINT 'UPDATE cms_ContentItem SET Data = SUBSTRING(Data, 1, LEN(Data)-2 ) WHERE Data LIKE ''%''+CHAR(13)+CHAR(10)';
	PRINT 'UPDATE cms_ContentItem SET Data = SUBSTRING(Data, 3, LEN(Data)) WHERE Data LIKE CHAR(13)+CHAR(10)+''%''';

END
/******************
ContentSideBarItem
******************/
BEGIN
DECLARE content_sbitem_cursor CURSOR FAST_FORWARD
		FOR SELECT ContentSideBarItemId, ContentId, SideBarItemId, Position, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_ContentSideBarItem] WHERE  ContentId IN (SELECT ContentId FROM cms_Content WHERE ApplicationId = @ApplicationId)
		OPEN content_sbitem_cursor
			FETCH NEXT FROM content_sbitem_cursor INTO  @CSB_ContentSideBarItemId, @CSB_ContentId, @CSB_SideBarItemId, @CSB_Position, @CSB_ApplicationId, @CSB_CreatedById, @CSB_DateCreated, @CSB_UpdatedById, @CSB_DateUpdated, @CSB_IsDeleted

	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem] DROP CONSTRAINT [FK_ContentSideBarItem_SideBarItem]';
	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem] DROP CONSTRAINT [FK_ContentSideBarItem_Content]';

	PRINT 'SELECT  @CurrentIdentitySeed = MAX(ContentSideBarItemId)  FROM cms_ContentSideBarItem  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_ContentSideBarItem] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : ' +  CONVERT(VARCHAR(50), @CSB_ContentSideBarItemId);

		PRINT '		INSERT [dbo].[cms_ContentSideBarItem] ([ContentSideBarItemId], [ContentId], [SideBarItemId], [Position], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES (' + CONVERT(VARCHAR(50), @CSB_ContentSideBarItemId + @IdentityStartAt)  + ', ' + CONVERT(VARCHAR(50), @CSB_ContentId + @IdentityStartAt) + ', ' + CONVERT(VARCHAR(50), @CSB_SideBarItemId) +  ', ' +  CONVERT(VARCHAR(50), @CSB_Position) + ', ' + CONVERT(VARCHAR(50), @TargetApplicationId)  + ', ' +
				CASE 
					WHEN @CSB_CreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CSB_CreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @CSB_DateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @CSB_UpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @CSB_UpdatedById) 
				END
				+
				 CASE 
					WHEN @CSB_DateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @CSB_DateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @CSB_IsDeleted) + ');';



			FETCH NEXT FROM content_sbitem_cursor INTO  @CSB_ContentSideBarItemId, @CSB_ContentId, @CSB_SideBarItemId, @CSB_Position, @CSB_ApplicationId, @CSB_CreatedById, @CSB_DateCreated, @CSB_UpdatedById, @CSB_DateUpdated, @CSB_IsDeleted
	END

	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem]  WITH CHECK ADD  CONSTRAINT [FK_ContentSideBarItem_Content] FOREIGN KEY([ContentId]) REFERENCES [dbo].[cms_Content] ([ContentId])';
	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem] CHECK CONSTRAINT [FK_ContentSideBarItem_Content]';
	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem]  WITH NOCHECK ADD  CONSTRAINT [FK_ContentSideBarItem_SideBarItem] FOREIGN KEY([SideBarItemId]) REFERENCES [dbo].[cms_SideBarItem] ([SideBarItemId])';
	PRINT 'ALTER TABLE [dbo].[cms_ContentSideBarItem] CHECK CONSTRAINT [FK_ContentSideBarItem_SideBarItem]';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_ContentSideBarItem] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_ContentSideBarItem'', reseed, @CurrentIdentitySeed)';
	CLOSE content_sbitem_cursor;
	DEALLOCATE content_sbitem_cursor;
END

/******************
SideBarItem
******************/
BEGIN
DECLARE sbitem_cursor CURSOR FAST_FORWARD
		FOR SELECT SideBarItemId, Title, Body, LinkUrl, Html, Type, ImageId, ApplicationId, CreatedById, DateCreated, UpdatedById, DateUpdated, IsDeleted
			 FROM [cms_SideBarItem] WHERE ApplicationId = @ApplicationId
		OPEN sbitem_cursor
			FETCH NEXT FROM sbitem_cursor INTO  @SbSideBarItemId, @SbTitle, @SbBody, @SbLinkUrl, @SbHtml, @SbType, @SbImageId, @SbApplicationId, @SbCreatedById, @SbDateCreated, @SbUpdatedById, @SbDateUpdated, @SbIsDeleted


	PRINT 'SELECT  @CurrentIdentitySeed = MAX(SideBarItemId)  FROM cms_SideBarItem  ';
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_SideBarItem] ON';
	SET @RecordCounter  = 0;
	WHILE @@FETCH_STATUS  = 0
	BEGIN
		SET @RecordCounter = @RecordCounter + 1;
		PRINT '--' + CONVERT(VARCHAR(50), @RecordCounter) + ' : ' +  @SbTitle;

		PRINT '		INSERT [dbo].[cms_SideBarItem] ([SideBarItemId], [Title], [Body], [LinkUrl], [Html], [Type], [ImageId], [ApplicationId], [CreatedById], [DateCreated], [UpdatedById], [DateUpdated], [IsDeleted])'; 
				PRINT '		VALUES (' + CONVERT(VARCHAR(50), @SbSideBarItemId + @IdentityStartAt)  + ', ''' + REPLACE(@SbTitle ,'''', '''''') +  ''', ''' + REPLACE(@SbBody ,'''', '''''')  + ''', ''' + 
				 ISNULL(@SbLinkUrl, 'NULL')  + ''', ''' + 
				ISNULL(@SbHtml, 'NULL')

				  + ''',' + CONVERT(VARCHAR(50), @SbType)  + ', ' +
				CASE 
					WHEN @SbImageId IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @SbImageId + @IdentityStartAt) 
				END
				+ ', ' + CONVERT(VARCHAR(50), @SbApplicationId) + ', ' +
				CASE 
					WHEN @SbCreatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @SbCreatedById) 
				END
				 + ', CAST(N''' +  CONVERT(VARCHAR(50), @SbDateCreated) + ''' AS DateTime), ' +   
				CASE 
					WHEN @SbUpdatedById IS NULL THEN 'NULL'
					ELSE CONVERT(VARCHAR(50), @SbUpdatedById) 
				END
				+
				 CASE 
					WHEN @SbDateUpdated IS NULL THEN ', NULL '
					ELSE ', CAST(N''' +  CONVERT(VARCHAR(50), @SbDateUpdated) + ''' AS DateTime) '
				END
				+ ', ' + CONVERT(VARCHAR(50), @SbIsDeleted) + ');';



				FETCH NEXT FROM sbitem_cursor INTO  @SbSideBarItemId, @SbTitle, @SbBody, @SbLinkUrl, @SbHtml, @SbType, @SbImageId, @SbApplicationId, @SbCreatedById, @SbDateCreated, @SbUpdatedById, @SbDateUpdated, @SbIsDeleted
	END
	PRINT 'SET IDENTITY_INSERT [dbo].[cms_SideBarItem] OFF';
	PRINT 'SET @CurrentIdentitySeed  = @CurrentIdentitySeed + 1';
	PRINT 'DBCC checkident (''cms_SideBarItem'', reseed, @CurrentIdentitySeed)';
	CLOSE sbitem_cursor;
	DEALLOCATE sbitem_cursor;
END
/******************************/
PRINT 'COMMIT TRAN UpdateCms'