SzkoleniaRiskoff/upgradescripts/1.90-2.00/upgrade.sql

3339 lines
111 KiB
Transact-SQL

--upgrade scripts from nopCommerce 1.90 to nopCommerce 2.00
DELETE FROM [Customer]
WHERE IsSystemAccount=0
GO
DELETE FROM [Address]
GO
DELETE FROM [Country]
GO
DELETE FROM [StateProvince]
GO
DELETE FROM [ShippingMethod]
GO
DELETE FROM [TaxCategory]
GO
--temporary table for identifiers
CREATE TABLE #IDs
(
[OriginalId] int NOT NULL,
[NewId] int NOT NULL,
[EntityName] nvarchar(100) NOT NULL
)
GO
--But we persist IDs for some of the entities (in order to save URLs):
--product, category, manufacturer, producttag, news, blog, profile, forums
--Update encryption key
UPDATE [Setting]
SET [Value] = (SELECT [Value] FROM [Nop_Setting] WHERE [name] = N'Security.EncryptionPrivateKey')
WHERE [Name] = N'SecuritySettings.EncryptionKey'
GO
--DOWNLOADS
PRINT 'moving downloads'
DECLARE @OriginalDownloadId int
DECLARE cur_originaldownload CURSOR FOR
SELECT DownloadId
FROM [Nop_Download]
ORDER BY [DownloadId]
OPEN cur_originaldownload
FETCH NEXT FROM cur_originaldownload INTO @OriginalDownloadId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving download. ID ' + cast(@OriginalDownloadId as nvarchar(10))
SET IDENTITY_INSERT [Download] ON
INSERT INTO [Download] ([Id], [UseDownloadUrl], [DownloadUrl], [DownloadBinary], [ContentType], [Filename], [Extension], [IsNew])
SELECT [DownloadId], [UseDownloadUrl], [DownloadUrl], [DownloadBinary], [ContentType], [Filename], [Extension], [IsNew]
FROM [Nop_Download]
WHERE DownloadId = @OriginalDownloadId
SET IDENTITY_INSERT [Download] OFF
--fetch next identifier
FETCH NEXT FROM cur_originaldownload INTO @OriginalDownloadId
END
CLOSE cur_originaldownload
DEALLOCATE cur_originaldownload
GO
--PICTURES
PRINT 'moving pictures'
DECLARE @OriginalPictureId int
DECLARE cur_originalpicture CURSOR FOR
SELECT PictureId
FROM [Nop_Picture]
ORDER BY [PictureId]
OPEN cur_originalpicture
FETCH NEXT FROM cur_originalpicture INTO @OriginalPictureId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving picture. ID ' + cast(@OriginalPictureId as nvarchar(10))
SET IDENTITY_INSERT [Picture] ON
INSERT INTO [Picture] ([Id], [PictureBinary], [IsNew], [MimeType])
SELECT [PictureId], [PictureBinary], [IsNew], [MimeType]
FROM [Nop_Picture]
WHERE PictureId = @OriginalPictureId
SET IDENTITY_INSERT [Picture] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalpicture INTO @OriginalPictureId
END
CLOSE cur_originalpicture
DEALLOCATE cur_originalpicture
GO
--LANGUAGES
PRINT 'moving languages'
DECLARE @NewDefaultLanguageId int
SELECT @NewDefaultLanguageId = Id FROM [Language]
DECLARE @OriginalLanguageId int
DECLARE cur_originallanguage CURSOR FOR
SELECT LanguageId
FROM [Nop_Language]
ORDER BY [LanguageId]
OPEN cur_originallanguage
FETCH NEXT FROM cur_originallanguage INTO @OriginalLanguageId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving language. ID ' + cast(@OriginalLanguageId as nvarchar(10))
INSERT INTO [Language] ([Name], [LanguageCulture], [FlagImageFileName], [Published], [DisplayOrder])
SELECT [Name], [LanguageCulture], [FlagImageFileName], [Published], [DisplayOrder]
FROM [Nop_Language]
WHERE LanguageId = @OriginalLanguageId
--new ID
DECLARE @NewLanguageId int
SET @NewLanguageId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalLanguageId, @NewLanguageId, N'Language')
--insert new locale recources (not old ones)
IF (@NewDefaultLanguageId > 0)
BEGIN
INSERT INTO [LocaleStringResource] ([LanguageId], [ResourceName], [ResourceValue])
SELECT @NewLanguageId, [ResourceName], [ResourceValue]
FROM [LocaleStringResource]
WHERE [LanguageId]=@NewDefaultLanguageId ORDER BY [ResourceName]
END
--fetch next identifier
FETCH NEXT FROM cur_originallanguage INTO @OriginalLanguageId
END
CLOSE cur_originallanguage
DEALLOCATE cur_originallanguage
--now delete default language
IF (@NewDefaultLanguageId > 0)
BEGIN
DELETE FROM [Language]
WHERE [Id]=@NewDefaultLanguageId
END
GO
--CAMPAIGNS
PRINT 'moving campaigns'
DECLARE @OriginalCampaignId int
DECLARE cur_originalcampaign CURSOR FOR
SELECT CampaignId
FROM [Nop_Campaign]
ORDER BY [CreatedOn]
OPEN cur_originalcampaign
FETCH NEXT FROM cur_originalcampaign INTO @OriginalCampaignId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving campaign. ID ' + cast(@OriginalCampaignId as nvarchar(10))
SET IDENTITY_INSERT [Campaign] ON
INSERT INTO [Campaign] ([Id], [Name], [Subject], [Body], [CreatedOnUtc])
SELECT [CampaignId], [Name], [Subject], [Body], [CreatedOn]
FROM [Nop_Campaign]
WHERE CampaignId = @OriginalCampaignId
SET IDENTITY_INSERT [Campaign] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalcampaign INTO @OriginalCampaignId
END
CLOSE cur_originalcampaign
DEALLOCATE cur_originalcampaign
GO
--COUNTRIES
PRINT 'moving countries'
DECLARE @OriginalCountryId int
DECLARE cur_originalcountry CURSOR FOR
SELECT CountryId
FROM [Nop_Country]
ORDER BY [DisplayOrder], [Name]
OPEN cur_originalcountry
FETCH NEXT FROM cur_originalcountry INTO @OriginalCountryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving country. ID ' + cast(@OriginalCountryId as nvarchar(10))
INSERT INTO [Country] ([Name], [AllowsBilling], [AllowsShipping], [TwoLetterIsoCode], [ThreeLetterIsoCode], [NumericIsoCode], [SubjectToVat], [Published], [DisplayOrder])
SELECT [Name], [AllowsBilling], [AllowsShipping], [TwoLetterIsoCode], [ThreeLetterIsoCode], [NumericIsoCode], [SubjectToVat], [Published], [DisplayOrder]
FROM [Nop_Country]
WHERE CountryId = @OriginalCountryId
--new ID
DECLARE @NewCountryId int
SET @NewCountryId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalCountryId, @NewCountryId, N'Country')
--fetch next identifier
FETCH NEXT FROM cur_originalcountry INTO @OriginalCountryId
END
CLOSE cur_originalcountry
DEALLOCATE cur_originalcountry
GO
--STATES
PRINT 'moving states'
DECLARE @OriginalStateProvinceId int
DECLARE cur_originalstateprovince CURSOR FOR
SELECT StateProvinceId
FROM [Nop_StateProvince]
ORDER BY [DisplayOrder], [Name]
OPEN cur_originalstateprovince
FETCH NEXT FROM cur_originalstateprovince INTO @OriginalStateProvinceId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving state. ID ' + cast(@OriginalStateProvinceId as nvarchar(10))
INSERT INTO [StateProvince] ([CountryId], [Name], [Abbreviation], [Published], [DisplayOrder])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=original_sp.CountryId), [Name], [Abbreviation], 1 /*published*/, [DisplayOrder]
FROM [Nop_StateProvince] original_sp
WHERE StateProvinceId = @OriginalStateProvinceId
--new ID
DECLARE @NewStateProvinceId int
SET @NewStateProvinceId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalStateProvinceId, @NewStateProvinceId, N'StateProvince')
--fetch next identifier
FETCH NEXT FROM cur_originalstateprovince INTO @OriginalStateProvinceId
END
CLOSE cur_originalstateprovince
DEALLOCATE cur_originalstateprovince
GO
--AFFILIATES
PRINT 'moving affiliates'
DECLARE @OriginalAffiliateId int
DECLARE cur_originalaffiliate CURSOR FOR
SELECT AffiliateId
FROM [Nop_Affiliate]
ORDER BY [AffiliateId]
OPEN cur_originalaffiliate
FETCH NEXT FROM cur_originalaffiliate INTO @OriginalAffiliateId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving affiliate. ID ' + cast(@OriginalAffiliateId as nvarchar(10))
INSERT INTO [Address] ([FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], [StateProvinceID], [ZipPostalCode], [CountryID], [CreatedOnUtc])
SELECT [FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], null /*no state province*/, [ZipPostalCode], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=[CountryId]), getutcdate()
FROM [Nop_Affiliate]
WHERE AffiliateId = @OriginalAffiliateId
DECLARE @NewAffiliateAddressId int
SET @NewAffiliateAddressId = @@IDENTITY
SET IDENTITY_INSERT [Affiliate] ON
INSERT INTO [Affiliate] ([Id], [AddressId], [Active], [Deleted])
SELECT [AffiliateId], @NewAffiliateAddressId, [Active], [Deleted]
FROM [Nop_Affiliate]
WHERE AffiliateId = @OriginalAffiliateId
SET IDENTITY_INSERT [Affiliate] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalaffiliate INTO @OriginalAffiliateId
END
CLOSE cur_originalaffiliate
DEALLOCATE cur_originalaffiliate
GO
--CUSTOMER ROLES
PRINT 'moving customer roles'
DECLARE @OriginalCustomerRoleId int
DECLARE cur_originalcustomerrole CURSOR FOR
SELECT CustomerRoleId
FROM [Nop_CustomerRole]
WHERE Deleted=0
ORDER BY CustomerRoleId
OPEN cur_originalcustomerrole
FETCH NEXT FROM cur_originalcustomerrole INTO @OriginalCustomerRoleId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving customer role. ID ' + cast(@OriginalCustomerRoleId as nvarchar(10))
INSERT INTO [CustomerRole] ([Name], [FreeShipping], [TaxExempt], [Active], [IsSystemRole])
SELECT [Name], [FreeShipping], [TaxExempt], [Active], 0
FROM [Nop_CustomerRole]
WHERE CustomerRoleId = @OriginalCustomerRoleId
--new ID
DECLARE @NewCustomerRoleId int
SET @NewCustomerRoleId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalCustomerRoleId, @NewCustomerRoleId, N'CustomerRole')
--fetch next identifier
FETCH NEXT FROM cur_originalcustomerrole INTO @OriginalCustomerRoleId
END
CLOSE cur_originalcustomerrole
DEALLOCATE cur_originalcustomerrole
GO
--CUSTOMERS
PRINT 'moving customers'
DECLARE @OriginalCustomerId int
DECLARE cur_originalcustomer CURSOR FOR
SELECT CustomerId
FROM [Nop_Customer]
ORDER BY CustomerId
OPEN cur_originalcustomer
FETCH NEXT FROM cur_originalcustomer INTO @OriginalCustomerId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving customer. ID ' + cast(@OriginalCustomerId as nvarchar(10))
SET IDENTITY_INSERT [Customer] ON
INSERT INTO [Customer] ([Id], [CustomerGuid], [Username], [Email], [Password], [PasswordFormatId], [PasswordSalt], [AffiliateId], [AdminComment], [TaxDisplayTypeId], [IsTaxExempt], [VatNumberStatusId], [UseRewardPointsDuringCheckout], [TimeZoneId], [Active], [Deleted], [IsSystemAccount], [CreatedOnUtc], [LastActivityDateUtc])
SELECT [CustomerId], [CustomerGuid], [Username], [Email], [PasswordHash], 1 /*hashed*/, [SaltKey], (SELECT CASE WHEN [AffiliateId]=0 THEN NULL ELSE [AffiliateId] END), [AdminComment], 0 /*IncludingTax now*/, [IsTaxExempt], 10 /*Empty now*/, 0, [TimeZoneId], [Active], [Deleted], 0, [RegistrationDate], [RegistrationDate]
FROM [Nop_Customer]
WHERE CustomerId = @OriginalCustomerId
SET IDENTITY_INSERT [Customer] OFF
--move customer attributes (Gender, Firstname, Lastname, Company, PasswordRecoveryToken, AccountActivationToken)
INSERT INTO [CustomerAttribute] ([CustomerId], [Key], [Value])
SELECT @OriginalCustomerId, [key], [value]
FROM [Nop_CustomerAttribute]
WHERE (CustomerID = @OriginalCustomerId) and
([key] = N'Gender' or [key] = N'FirstName' or [key] = N'LastName' or [key] = N'Company' or [key] = N'PasswordRecoveryToken' or [key] = N'AccountActivationToken') and
([value] is not null)
--move 'ForumPostCount' customer attribute
DECLARE @ForumPostCount int
SET @ForumPostCount = null -- clear cache (variable scope)
SELECT @ForumPostCount = [TotalForumPosts]
FROM [Nop_Customer]
WHERE CustomerId = @OriginalCustomerId
IF (@ForumPostCount > 0)
BEGIN
INSERT INTO [CustomerAttribute] ([CustomerId], [Key], [Value])
VALUES (@OriginalCustomerId, 'ForumPostCount', cast(@ForumPostCount as nvarchar(100)))
END
--move 'Signature' customer attribute
DECLARE @Signature nvarchar(1000)
SET @Signature = null -- clear cache (variable scope)
SELECT @Signature = [Signature]
FROM [Nop_Customer]
WHERE CustomerId = @OriginalCustomerId
IF (len(@Signature) > 0)
BEGIN
INSERT INTO [CustomerAttribute] ([CustomerId], [Key], [Value])
VALUES (@OriginalCustomerId, 'Signature', @Signature)
END
--move 'Avatar' customer attribute
DECLARE @AvatarPictureId int
SET @AvatarPictureId = null -- clear cache (variable scope)
SELECT @AvatarPictureId = [AvatarID] FROM [Nop_Customer] WHERE CustomerId = @OriginalCustomerId
IF (@AvatarPictureId > 0)
BEGIN
INSERT INTO [CustomerAttribute] ([CustomerId], [Key], [Value])
VALUES (@OriginalCustomerId, 'AvatarPictureId', cast(@AvatarPictureId as nvarchar(100)))
END
--move 'Location' customer attribute
DECLARE @LocationCountryId int
SET @LocationCountryId = null -- clear cache (variable scope)
DECLARE @OldLocationCountryId nvarchar(100)
SET @OldLocationCountryId = null -- clear cache (variable scope)
SELECT @OldLocationCountryId=[Value]
FROM [Nop_CustomerAttribute]
WHERE CustomerId = @OriginalCustomerId and [key]=N'CountryID'
IF (@OldLocationCountryId is not null and len(@OldLocationCountryId) > 0)
BEGIN
SELECT @LocationCountryId = [NewId]
FROM #IDs
WHERE [EntityName]=N'Country' and [OriginalId]=(cast(@OldLocationCountryId as int))
IF (@LocationCountryId > 0)
BEGIN
INSERT INTO [CustomerAttribute] ([CustomerId], [Key], [Value])
VALUES (@OriginalCustomerId, 'Location', cast(@LocationCountryId as nvarchar(100)))
END
END
--map customer to customer roles (new system roles)
DECLARE @IsAdmin bit
DECLARE @IsGuest bit
DECLARE @IsRegistered bit
DECLARE @IsForumModerator bit
SELECT @IsAdmin = IsAdmin, @IsGuest = IsGuest, @IsRegistered = ~IsGuest, @IsForumModerator = IsForumModerator
FROM [Nop_Customer]
WHERE CustomerId = @OriginalCustomerId
DECLARE @AdminCustomerRoleId int
DECLARE @GuestCustomerRoleId int
DECLARE @RegisteredCustomerRoleId int
DECLARE @ForumModeratorCustomerRoleId int
SELECT @AdminCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'Administrators'
SELECT @GuestCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'Guests'
SELECT @RegisteredCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'Registered'
SELECT @ForumModeratorCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'ForumModerators'
IF (@IsAdmin = 1)
BEGIN
INSERT INTO [Customer_CustomerRole_Mapping] ([CustomerRole_Id], [Customer_Id])
VALUES (@AdminCustomerRoleId, @OriginalCustomerId)
END
IF (@IsGuest = 1)
BEGIN
INSERT INTO Customer_CustomerRole_Mapping ([CustomerRole_Id], [Customer_Id])
VALUES (@GuestCustomerRoleId, @OriginalCustomerId)
END
IF (@IsRegistered = 1)
BEGIN
INSERT INTO Customer_CustomerRole_Mapping ([CustomerRole_Id], [Customer_Id])
VALUES (@RegisteredCustomerRoleId, @OriginalCustomerId)
END
IF (@IsForumModerator = 1)
BEGIN
INSERT INTO Customer_CustomerRole_Mapping ([CustomerRole_Id], [Customer_Id])
VALUES (@ForumModeratorCustomerRoleId, @OriginalCustomerId)
END
--map customer to customer roles(old roles)
INSERT INTO [Customer_CustomerRole_Mapping] ([CustomerRole_Id],[Customer_Id])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'CustomerRole' and [OriginalId]=original_ccrm.CustomerRoleId), @OriginalCustomerId
FROM [Nop_Customer_CustomerRole_Mapping] original_ccrm
WHERE original_ccrm.CustomerID = @OriginalCustomerId
--fetch next identifier
FETCH NEXT FROM cur_originalcustomer INTO @OriginalCustomerId
END
CLOSE cur_originalcustomer
DEALLOCATE cur_originalcustomer
GO
--CUSTOMER ADDRESSES
PRINT 'moving customer addresses'
DECLARE @OriginalAddressId int
DECLARE cur_originaladdress CURSOR FOR
SELECT [AddressId]
FROM [Nop_Address]
WHERE [IsBillingAddress]=1 --move only billing addresses
ORDER BY AddressId
OPEN cur_originaladdress
FETCH NEXT FROM cur_originaladdress INTO @OriginalAddressId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving addresses. ID ' + cast(@OriginalAddressId as nvarchar(10))
INSERT INTO [Address] ([FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], [StateProvinceID], [ZipPostalCode], [CountryID], [CreatedOnUtc])
SELECT [FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'StateProvince' and [OriginalId]=[StateProvinceID]), [ZipPostalCode], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=[CountryId]), [CreatedOn]
FROM [Nop_Address]
WHERE AddressId = @OriginalAddressId
--new ID
DECLARE @NewAddressId int
SET @NewAddressId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalAddressId, @NewAddressId, N'Address')
--map customers to addresses (now we have a new CustomerAddresses table)
INSERT INTO [CustomerAddresses] ([Customer_Id],[Address_Id])
SELECT [CustomerID], @NewAddressId
FROM [Nop_Address]
WHERE [AddressId] = @OriginalAddressId
--fetch next identifier
FETCH NEXT FROM cur_originaladdress INTO @OriginalAddressId
END
CLOSE cur_originaladdress
DEALLOCATE cur_originaladdress
GO
--BLOG POSTS
PRINT 'moving blog posts'
DECLARE @OriginalBlogPostId int
DECLARE cur_originalblogpost CURSOR FOR
SELECT BlogPostId
FROM [Nop_BlogPost]
ORDER BY [CreatedOn]
OPEN cur_originalblogpost
FETCH NEXT FROM cur_originalblogpost INTO @OriginalBlogPostId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving blog post. ID ' + cast(@OriginalBlogPostId as nvarchar(10))
SET IDENTITY_INSERT [BlogPost] ON
INSERT INTO [BlogPost] ([Id], [LanguageId], [Title], [Body], [AllowComments], [Tags], [CreatedOnUtc])
SELECT [BlogPostId], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), [BlogPostTitle], [BlogPostBody], [BlogPostAllowComments], [Tags], [CreatedOn]
FROM [Nop_BlogPost]
WHERE BlogPostId = @OriginalBlogPostId
SET IDENTITY_INSERT [BlogPost] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalblogpost INTO @OriginalBlogPostId
END
CLOSE cur_originalblogpost
DEALLOCATE cur_originalblogpost
GO
--BLOG COMMENTS
PRINT 'moving blog comments'
DECLARE @OriginalBlogCommentId int
DECLARE cur_originalblogcomment CURSOR FOR
SELECT BlogCommentId
FROM [Nop_BlogComment]
ORDER BY [CreatedOn]
OPEN cur_originalblogcomment
FETCH NEXT FROM cur_originalblogcomment INTO @OriginalBlogCommentId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving blog comment. ID ' + cast(@OriginalBlogCommentId as nvarchar(10))
DECLARE @BlogCommentCustomerId int
SET @BlogCommentCustomerId = null -- clear cache (variable scope)
SELECT @BlogCommentCustomerId = CustomerID FROM [Nop_BlogComment] WHERE BlogCommentId = @OriginalBlogCommentId
--ensure that @BlogCommentCustomerId is not null
IF ((@BlogCommentCustomerId is null) or (@BlogCommentCustomerId = 0))
BEGIN
--insert guest customer
print 'inserting guest customer for blog comment'
INSERT INTO [Customer] ([CustomerGuid], [PasswordFormatId], [TaxDisplayTypeId], [IsTaxExempt], [VatNumberStatusId], [UseRewardPointsDuringCheckout], [Active], [Deleted], [IsSystemAccount], [CreatedOnUtc], [LastActivityDateUtc])
VALUES (NEWID(), 0 /*clear*/, 0 /*IncludingTax now*/, 0, 10 /*Empty now*/, 0, 1, 0, 0, getutcdate(),getutcdate())
SET @BlogCommentCustomerId = @@IDENTITY
DECLARE @GuestCustomerRoleId int
SELECT @GuestCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'Guests'
INSERT INTO Customer_CustomerRole_Mapping ([CustomerRole_Id], [Customer_Id])
VALUES (@GuestCustomerRoleId, @BlogCommentCustomerId)
END
INSERT INTO [CustomerContent] ([CustomerId], [IpAddress], [IsApproved], [CreatedOnUtc], [UpdatedOnUtc])
SELECT @BlogCommentCustomerId, [IpAddress], 1 /*approved*/, [CreatedOn], [CreatedOn]
FROM [Nop_BlogComment]
WHERE BlogCommentId = @OriginalBlogCommentId
--new ID
DECLARE @NewBlogCommentId int
SET @NewBlogCommentId = @@IDENTITY
INSERT INTO [BlogComment] ([Id], [CommentText], [BlogPostId])
SELECT @NewBlogCommentId, [CommentText], [BlogPostID]
FROM [Nop_BlogComment]
WHERE BlogCommentId = @OriginalBlogCommentId
--fetch next identifier
FETCH NEXT FROM cur_originalblogcomment INTO @OriginalBlogCommentId
END
CLOSE cur_originalblogcomment
DEALLOCATE cur_originalblogcomment
GO
--NEWS ITEMS
PRINT 'moving news items'
DECLARE @OriginalNewsItemId int
DECLARE cur_originalnewsitem CURSOR FOR
SELECT NewsId
FROM [Nop_News]
ORDER BY [CreatedOn]
OPEN cur_originalnewsitem
FETCH NEXT FROM cur_originalnewsitem INTO @OriginalNewsItemId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving news item. ID ' + cast(@OriginalNewsItemId as nvarchar(10))
SET IDENTITY_INSERT [News] ON
INSERT INTO [News] ([Id], [LanguageId], [Title], [Short], [Full], [Published], [AllowComments], [CreatedOnUtc])
SELECT [NewsId], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), [Title], [Short], [Full], [Published], [AllowComments], [CreatedOn]
FROM [Nop_News]
WHERE NewsId = @OriginalNewsItemId
SET IDENTITY_INSERT [News] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalnewsitem INTO @OriginalNewsItemId
END
CLOSE cur_originalnewsitem
DEALLOCATE cur_originalnewsitem
GO
--NEWS COMMENTS
PRINT 'moving news comments'
DECLARE @OriginalNewsCommentId int
DECLARE cur_originalnewscomment CURSOR FOR
SELECT NewsCommentId
FROM [Nop_NewsComment]
ORDER BY [CreatedOn]
OPEN cur_originalnewscomment
FETCH NEXT FROM cur_originalnewscomment INTO @OriginalNewsCommentId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving news comment. ID ' + cast(@OriginalNewsCommentId as nvarchar(10))
DECLARE @NewsCommentCustomerId int
SET @NewsCommentCustomerId = null -- clear cache (variable scope)
SELECT @NewsCommentCustomerId = CustomerID FROM [Nop_NewsComment] WHERE NewsCommentId = @OriginalNewsCommentId
--ensure that @NewsCommentCustomerId is not null
IF ((@NewsCommentCustomerId is null) or (@NewsCommentCustomerId = 0))
BEGIN
--insert guest customer
print 'inserting guest customer for news comment'
INSERT INTO [Customer] ([CustomerGuid], [PasswordFormatId], [TaxDisplayTypeId], [IsTaxExempt], [VatNumberStatusId], [UseRewardPointsDuringCheckout], [Active], [Deleted], [IsSystemAccount], [CreatedOnUtc], [LastActivityDateUtc])
VALUES (NEWID(), 0 /*clear*/, 0 /*IncludingTax now*/, 0, 10 /*Empty now*/, 0, 1, 0, 0, getutcdate(),getutcdate())
SET @NewsCommentCustomerId = @@IDENTITY
DECLARE @GuestCustomerRoleId int
SELECT @GuestCustomerRoleId = Id
FROM [CustomerRole]
WHERE IsSystemRole=1 and [SystemName] = N'Guests'
INSERT INTO Customer_CustomerRole_Mapping ([CustomerRole_Id], [Customer_Id])
VALUES (@GuestCustomerRoleId, @NewsCommentCustomerId)
END
INSERT INTO [CustomerContent] ([CustomerId], [IpAddress], [IsApproved], [CreatedOnUtc], [UpdatedOnUtc])
SELECT @NewsCommentCustomerId, [IpAddress], 1 /*approved*/, [CreatedOn], [CreatedOn]
FROM [Nop_NewsComment]
WHERE NewsCommentId = @OriginalNewsCommentId
--new ID
DECLARE @NewNewsCommentId int
SET @NewNewsCommentId = @@IDENTITY
INSERT INTO [NewsComment] ([Id], [CommentTitle], [CommentText], [NewsItemId])
SELECT @NewNewsCommentId, [Title], [Comment], [NewsID]
FROM [Nop_NewsComment]
WHERE NewsCommentId = @OriginalNewsCommentId
--fetch next identifier
FETCH NEXT FROM cur_originalnewscomment INTO @OriginalNewsCommentId
END
CLOSE cur_originalnewscomment
DEALLOCATE cur_originalnewscomment
GO
--POLLS
PRINT 'moving polls'
DECLARE @OriginalPollId int
DECLARE cur_originalpoll CURSOR FOR
SELECT PollId
FROM [Nop_Poll]
ORDER BY [PollId]
OPEN cur_originalpoll
FETCH NEXT FROM cur_originalpoll INTO @OriginalPollId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving poll. ID ' + cast(@OriginalPollId as nvarchar(10))
SET IDENTITY_INSERT [Poll] ON
INSERT INTO [Poll] ([Id], [LanguageId], [Name], [SystemKeyword], [Published], [ShowOnHomePage], [DisplayOrder], [StartDateUtc], [EndDateUtc])
SELECT [PollId], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), [Name], [SystemKeyword], [Published], [ShowOnHomePage], [DisplayOrder], [StartDate], [EndDate]
FROM [Nop_Poll]
WHERE PollId = @OriginalPollId
SET IDENTITY_INSERT [Poll] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalpoll INTO @OriginalPollId
END
CLOSE cur_originalpoll
DEALLOCATE cur_originalpoll
GO
--POLL ANSWERS
PRINT 'moving poll answers'
DECLARE @OriginalPollAnswerId int
DECLARE cur_originalpollanswer CURSOR FOR
SELECT PollAnswerId
FROM [Nop_PollAnswer]
ORDER BY [DisplayOrder]
OPEN cur_originalpollanswer
FETCH NEXT FROM cur_originalpollanswer INTO @OriginalPollAnswerId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving poll answer. ID ' + cast(@OriginalPollAnswerId as nvarchar(10))
INSERT INTO [PollAnswer] ([PollId], [Name], [NumberOfVotes], [DisplayOrder])
SELECT [PollId], [Name], [Count], [DisplayOrder]
FROM [Nop_PollAnswer]
WHERE PollAnswerId = @OriginalPollAnswerId
--new ID
DECLARE @NewPollAnswerId int
SET @NewPollAnswerId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalPollAnswerId, @NewPollAnswerId, N'PollAnswer')
--fetch next identifier
FETCH NEXT FROM cur_originalpollanswer INTO @OriginalPollAnswerId
END
CLOSE cur_originalpollanswer
DEALLOCATE cur_originalpollanswer
GO
--POLL VOTING RECORDS
PRINT 'moving poll voting records'
DECLARE @OriginalPollVotingRecordId int
DECLARE cur_originalpollvotingrecord CURSOR FOR
SELECT PollVotingRecordId
FROM [Nop_PollVotingRecord]
ORDER BY [PollVotingRecordID]
OPEN cur_originalpollvotingrecord
FETCH NEXT FROM cur_originalpollvotingrecord INTO @OriginalPollVotingRecordId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving poll voting record. ID ' + cast(@OriginalPollVotingRecordId as nvarchar(10))
INSERT INTO [CustomerContent] ([CustomerId], [IpAddress], [IsApproved], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [CustomerId], null, 1 /*approved*/, getutcdate(), getutcdate()
FROM [Nop_PollVotingRecord]
WHERE PollVotingRecordId = @OriginalPollVotingRecordId
--new ID
DECLARE @NewPollVotingRecordId int
SET @NewPollVotingRecordId = @@IDENTITY
INSERT INTO [PollVotingRecord] ([Id], [PollAnswerId])
SELECT @NewPollVotingRecordId, (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'PollAnswer' and [OriginalId]=[PollAnswerID])
FROM [Nop_PollVotingRecord]
WHERE PollVotingRecordId = @OriginalPollVotingRecordId
--fetch next identifier
FETCH NEXT FROM cur_originalpollvotingrecord INTO @OriginalPollVotingRecordId
END
CLOSE cur_originalpollvotingrecord
DEALLOCATE cur_originalpollvotingrecord
GO
--FORUM GROUPS
PRINT 'moving forum groups'
DECLARE @OriginalForumGroupId int
DECLARE cur_originalforumgroup CURSOR FOR
SELECT ForumGroupId
FROM [Nop_Forums_Group]
ORDER BY [DisplayOrder]
OPEN cur_originalforumgroup
FETCH NEXT FROM cur_originalforumgroup INTO @OriginalForumGroupId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving forum group. ID ' + cast(@OriginalForumGroupId as nvarchar(10))
SET IDENTITY_INSERT [Forums_Group] ON
INSERT INTO [Forums_Group] ([Id], [Name], [Description], [DisplayOrder], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [ForumGroupId], [Name], [Description], [DisplayOrder], [CreatedOn], [UpdatedOn]
FROM [Nop_Forums_Group]
WHERE ForumGroupId = @OriginalForumGroupId
SET IDENTITY_INSERT [Forums_Group] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalforumgroup INTO @OriginalForumGroupId
END
CLOSE cur_originalforumgroup
DEALLOCATE cur_originalforumgroup
GO
--FORUMS
PRINT 'moving forums'
DECLARE @OriginalForumId int
DECLARE cur_originalforum CURSOR FOR
SELECT ForumId
FROM [Nop_Forums_Forum]
ORDER BY [CreatedOn]
OPEN cur_originalforum
FETCH NEXT FROM cur_originalforum INTO @OriginalForumId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving forum. ID ' + cast(@OriginalForumId as nvarchar(10))
SET IDENTITY_INSERT [Forums_Forum] ON
INSERT INTO [Forums_Forum] ([Id], [ForumGroupId], [Name], [Description], [NumTopics], [NumPosts], [LastTopicId], [LastPostId], [LastPostCustomerId], [LastPostTime], [DisplayOrder], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [ForumId], [ForumGroupId], [Name], [Description], [NumTopics], [NumPosts], [LastTopicId], [LastPostId], [LastPostUserID], [LastPostTime], [DisplayOrder], [CreatedOn], [UpdatedOn]
FROM [Nop_Forums_Forum]
WHERE ForumId = @OriginalForumId
SET IDENTITY_INSERT [Forums_Forum] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalforum INTO @OriginalForumId
END
CLOSE cur_originalforum
DEALLOCATE cur_originalforum
GO
--FORUM TOPICS
PRINT 'moving forum topics'
DECLARE @OriginalForumTopicId int
DECLARE cur_originalforumtopic CURSOR FOR
SELECT TopicId
FROM [Nop_Forums_Topic]
ORDER BY [CreatedOn]
OPEN cur_originalforumtopic
FETCH NEXT FROM cur_originalforumtopic INTO @OriginalForumTopicId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving forum topic. ID ' + cast(@OriginalForumTopicId as nvarchar(10))
SET IDENTITY_INSERT [Forums_Topic] ON
INSERT INTO [Forums_Topic] ([Id], [ForumId], [CustomerId], [TopicTypeId], [Subject], [NumPosts], [Views], [LastPostId], [LastPostCustomerId], [LastPostTime], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [TopicId], [ForumId], [UserID], [TopicTypeId], [Subject], [NumPosts], [Views], [LastPostId], [LastPostUserID], [LastPostTime], [CreatedOn], [UpdatedOn]
FROM [Nop_Forums_Topic]
WHERE TopicId = @OriginalForumTopicId
SET IDENTITY_INSERT [Forums_Topic] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalforumtopic INTO @OriginalForumTopicId
END
CLOSE cur_originalforumtopic
DEALLOCATE cur_originalforumtopic
GO
--FORUM POSTS
PRINT 'moving forum posts'
DECLARE @OriginalForumPostId int
DECLARE cur_originalforumpost CURSOR FOR
SELECT PostId
FROM [Nop_Forums_Post]
ORDER BY [CreatedOn]
OPEN cur_originalforumpost
FETCH NEXT FROM cur_originalforumpost INTO @OriginalForumPostId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving forum post. ID ' + cast(@OriginalForumPostId as nvarchar(10))
SET IDENTITY_INSERT [Forums_Post] ON
INSERT INTO [Forums_Post] ([Id], [TopicId], [CustomerId], [Text], [IPAddress], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [PostID], [TopicId], [UserID], [Text], [IPAddress], [CreatedOn], [UpdatedOn]
FROM [Nop_Forums_Post]
WHERE PostId = @OriginalForumPostId
SET IDENTITY_INSERT [Forums_Post] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalforumpost INTO @OriginalForumPostId
END
CLOSE cur_originalforumpost
DEALLOCATE cur_originalforumpost
GO
--FORUM SUBSCRIPTIONS
PRINT 'moving forum subscriptions'
DECLARE @OriginalForumSubscriptionId int
DECLARE cur_originalforumsubscription CURSOR FOR
SELECT SubscriptionID
FROM [Nop_Forums_Subscription]
ORDER BY [SubscriptionID]
OPEN cur_originalforumsubscription
FETCH NEXT FROM cur_originalforumsubscription INTO @OriginalForumSubscriptionId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving forum subscription. ID ' + cast(@OriginalForumSubscriptionId as nvarchar(10))
INSERT INTO [Forums_Subscription] ([SubscriptionGuid], [CustomerId], [ForumId], [TopicId], [CreatedOnUtc])
SELECT [SubscriptionGuid], [UserId], [ForumId], [TopicId], [CreatedOn]
FROM [Nop_Forums_Subscription]
WHERE SubscriptionID = @OriginalForumSubscriptionId
--fetch next identifier
FETCH NEXT FROM cur_originalforumsubscription INTO @OriginalForumSubscriptionId
END
CLOSE cur_originalforumsubscription
DEALLOCATE cur_originalforumsubscription
GO
--PRIVATE MESSAGES
PRINT 'moving private messages'
DECLARE @OriginalPrivateMessageId int
DECLARE cur_originalprivatemessage CURSOR FOR
SELECT PrivateMessageID
FROM [Nop_Forums_PrivateMessage]
ORDER BY [PrivateMessageID]
OPEN cur_originalprivatemessage
FETCH NEXT FROM cur_originalprivatemessage INTO @OriginalPrivateMessageId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving private message. ID ' + cast(@OriginalPrivateMessageId as nvarchar(10))
INSERT INTO [Forums_PrivateMessage] ([FromCustomerId], [ToCustomerId], [Subject], [Text], [IsRead], [IsDeletedByAuthor], [IsDeletedByRecipient], [CreatedOnUtc])
SELECT [FromUserID], [ToUserID], [Subject], [Text], [IsRead], [IsDeletedByAuthor], [IsDeletedByRecipient], [CreatedOn]
FROM [Nop_Forums_PrivateMessage]
WHERE PrivateMessageID = @OriginalPrivateMessageId
--fetch next identifier
FETCH NEXT FROM cur_originalprivatemessage INTO @OriginalPrivateMessageId
END
CLOSE cur_originalprivatemessage
DEALLOCATE cur_originalprivatemessage
GO
--NEWSLETTER SUBSCRIPTIONS
PRINT 'moving newsletter subscriptions'
DECLARE @OriginalNewsLetterSubscriptionId int
DECLARE cur_originalnewslettersubscription CURSOR FOR
SELECT NewsLetterSubscriptionId
FROM [Nop_NewsLetterSubscription]
ORDER BY [NewsLetterSubscriptionId]
OPEN cur_originalnewslettersubscription
FETCH NEXT FROM cur_originalnewslettersubscription INTO @OriginalNewsLetterSubscriptionId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving newsletter subscription. ID ' + cast(@OriginalNewsLetterSubscriptionId as nvarchar(10))
INSERT INTO [NewsLetterSubscription] ([NewsLetterSubscriptionGuid], [Email], [Active], [CreatedOnUtc])
SELECT [NewsLetterSubscriptionGuid], [Email], [Active], [CreatedOn]
FROM [Nop_NewsLetterSubscription]
WHERE NewsLetterSubscriptionId = @OriginalNewsLetterSubscriptionId
--fetch next identifier
FETCH NEXT FROM cur_originalnewslettersubscription INTO @OriginalNewsLetterSubscriptionId
END
CLOSE cur_originalnewslettersubscription
DEALLOCATE cur_originalnewslettersubscription
GO
--QUEUED EMAILS
PRINT 'moving queued emails'
DECLARE @DefaultEmailAccount int
SELECT @DefaultEmailAccount = cast([value] as int) FROM [Setting] WHERE [name] = 'emailaccountsettings.defaultemailaccountid'
DECLARE @OriginalQueuedEmailId int
DECLARE cur_originalqueuedemail CURSOR FOR
SELECT QueuedEmailId
FROM [Nop_QueuedEmail]
ORDER BY [QueuedEmailId]
OPEN cur_originalqueuedemail
FETCH NEXT FROM cur_originalqueuedemail INTO @OriginalQueuedEmailId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving queued email. ID ' + cast(@OriginalQueuedEmailId as nvarchar(10))
INSERT INTO [QueuedEmail] ([Priority], [From], [FromName], [To], [ToName], [Cc], [Bcc], [Subject], [Body], [CreatedOnUtc], [SentTries], [SentOnUtc], [EmailAccountId])
SELECT [Priority], [From], [FromName], [To], [ToName], [Cc], [Bcc], [Subject], [Body], [CreatedOn], [SendTries], [SentOn], @DefaultEmailAccount
FROM [Nop_QueuedEmail]
WHERE QueuedEmailId = @OriginalQueuedEmailId
--fetch next identifier
FETCH NEXT FROM cur_originalqueuedemail INTO @OriginalQueuedEmailId
END
CLOSE cur_originalqueuedemail
DEALLOCATE cur_originalqueuedemail
GO
--SHIPPING METHODS
PRINT 'moving shipping methods'
DECLARE @OriginalShippingMethodId int
DECLARE cur_originalshippingmethod CURSOR FOR
SELECT ShippingMethodId
FROM [Nop_ShippingMethod]
ORDER BY [ShippingMethodId]
OPEN cur_originalshippingmethod
FETCH NEXT FROM cur_originalshippingmethod INTO @OriginalShippingMethodId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving shipping method. ID ' + cast(@OriginalShippingMethodId as nvarchar(10))
INSERT INTO [ShippingMethod] ([Name], [Description], [DisplayOrder])
SELECT [Name], [Description], [DisplayOrder]
FROM [Nop_ShippingMethod]
WHERE ShippingMethodId = @OriginalShippingMethodId
--new ID
DECLARE @NewShippingMethodId int
SET @NewShippingMethodId = @@IDENTITY
--shipping method restrictions
INSERT INTO [ShippingMethodRestrictions] ([ShippingMethod_Id], [Country_Id])
SELECT @NewShippingMethodId, (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=[CountryID])
FROM [Nop_ShippingMethod_RestrictedCountries]
WHERE ShippingMethodId = @OriginalShippingMethodId
--fetch next identifier
FETCH NEXT FROM cur_originalshippingmethod INTO @OriginalShippingMethodId
END
CLOSE cur_originalshippingmethod
DEALLOCATE cur_originalshippingmethod
GO
--TAX CATEGORIES
PRINT 'moving tax categories'
DECLARE @OriginalTaxCategoryId int
DECLARE cur_originaltaxcategory CURSOR FOR
SELECT TaxCategoryId
FROM [Nop_TaxCategory]
ORDER BY [TaxCategoryId]
OPEN cur_originaltaxcategory
FETCH NEXT FROM cur_originaltaxcategory INTO @OriginalTaxCategoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving tax category. ID ' + cast(@OriginalTaxCategoryId as nvarchar(10))
SET IDENTITY_INSERT [TaxCategory] ON
INSERT INTO [TaxCategory] ([Id], [Name], [DisplayOrder])
SELECT [TaxCategoryId], [Name], [DisplayOrder]
FROM [Nop_TaxCategory]
WHERE TaxCategoryId = @OriginalTaxCategoryId
SET IDENTITY_INSERT [TaxCategory] OFF
--fetch next identifier
FETCH NEXT FROM cur_originaltaxcategory INTO @OriginalTaxCategoryId
END
CLOSE cur_originaltaxcategory
DEALLOCATE cur_originaltaxcategory
GO
--CATEGORIES
PRINT 'moving categories'
DECLARE @OriginalCategoryId int
DECLARE cur_originalcategory CURSOR FOR
SELECT CategoryId
FROM [Nop_Category]
ORDER BY [CategoryId]
OPEN cur_originalcategory
FETCH NEXT FROM cur_originalcategory INTO @OriginalCategoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving category. ID ' + cast(@OriginalCategoryId as nvarchar(10))
SET IDENTITY_INSERT [Category] ON
INSERT INTO [Category] ([Id], [Name], [Description], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [ParentCategoryId], [PictureId], [PageSize], [PriceRanges], [ShowOnHomePage], [Published], [Deleted], [DisplayOrder], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [CategoryId], [Name], [Description], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [ParentCategoryId], [PictureId], [PageSize], [PriceRanges], [ShowOnHomePage], [Published], [Deleted], [DisplayOrder], [CreatedOn], [UpdatedOn]
FROM [Nop_Category]
WHERE CategoryId = @OriginalCategoryId
SET IDENTITY_INSERT [Category] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalcategory INTO @OriginalCategoryId
END
CLOSE cur_originalcategory
DEALLOCATE cur_originalcategory
GO
--LOCALIZED CATEGORIES
PRINT 'moving localized categories'
DECLARE @OriginalCategoryLocalizedId int
DECLARE cur_originalcategorylocalized CURSOR FOR
SELECT CategoryLocalizedID
FROM [Nop_CategoryLocalized]
ORDER BY [CategoryLocalizedID]
OPEN cur_originalcategorylocalized
FETCH NEXT FROM cur_originalcategorylocalized INTO @OriginalCategoryLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized category. ID ' + cast(@OriginalCategoryLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @Description nvarchar(MAX)
SET @Description = null -- clear cache (variable scope)
DECLARE @MetaKeywords nvarchar(MAX)
SET @MetaKeywords = null -- clear cache (variable scope)
DECLARE @MetaDescription nvarchar(MAX)
SET @MetaDescription = null -- clear cache (variable scope)
DECLARE @MetaTitle nvarchar(MAX)
SET @MetaTitle = null -- clear cache (variable scope)
DECLARE @SEName nvarchar(MAX)
SET @SEName = null -- clear cache (variable scope)
SELECT @Name = [Name],
@Description=[Description],
@MetaKeywords = [MetaKeywords],
@MetaDescription = [MetaDescription],
@MetaTitle = [MetaTitle],
@SEName = [SEName]
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'Name', @Name
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
IF (len(@Description) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'Description', @Description
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
IF (len(@MetaKeywords) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'MetaKeywords', @MetaKeywords
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
IF (len(@MetaDescription) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'MetaDescription', @MetaDescription
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
IF (len(@MetaTitle) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'MetaTitle', @MetaTitle
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
IF (len(@SEName) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CategoryID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Category', 'SEName', @SEName
FROM [Nop_CategoryLocalized]
WHERE [CategoryLocalizedID] = @OriginalCategoryLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalcategorylocalized INTO @OriginalCategoryLocalizedId
END
CLOSE cur_originalcategorylocalized
DEALLOCATE cur_originalcategorylocalized
GO
--MANUFACTURERS
PRINT 'moving manufacturers'
DECLARE @OriginalManufacturerId int
DECLARE cur_originalmanufacturer CURSOR FOR
SELECT ManufacturerId
FROM [Nop_Manufacturer]
ORDER BY [ManufacturerId]
OPEN cur_originalmanufacturer
FETCH NEXT FROM cur_originalmanufacturer INTO @OriginalManufacturerId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving manufacturer. ID ' + cast(@OriginalManufacturerId as nvarchar(10))
SET IDENTITY_INSERT [Manufacturer] ON
INSERT INTO [Manufacturer] ([Id], [Name], [Description], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [PictureId], [PageSize], [PriceRanges], [Published], [Deleted], [DisplayOrder], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [ManufacturerId], [Name], [Description], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [PictureId], [PageSize], [PriceRanges], [Published], [Deleted], [DisplayOrder], [CreatedOn], [UpdatedOn]
FROM [Nop_Manufacturer]
WHERE ManufacturerId = @OriginalManufacturerId
SET IDENTITY_INSERT [Manufacturer] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalmanufacturer INTO @OriginalManufacturerId
END
CLOSE cur_originalmanufacturer
DEALLOCATE cur_originalmanufacturer
GO
--LOCALIZED MANUFACTURERS
PRINT 'moving localized manufacturers'
DECLARE @OriginalManufacturerLocalizedId int
DECLARE cur_originalmanufacturerlocalized CURSOR FOR
SELECT ManufacturerLocalizedID
FROM [Nop_ManufacturerLocalized]
ORDER BY [ManufacturerLocalizedID]
OPEN cur_originalmanufacturerlocalized
FETCH NEXT FROM cur_originalmanufacturerlocalized INTO @OriginalManufacturerLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized manufacturer. ID ' + cast(@OriginalManufacturerLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @Description nvarchar(MAX)
SET @Description = null -- clear cache (variable scope)
DECLARE @MetaKeywords nvarchar(MAX)
SET @MetaKeywords = null -- clear cache (variable scope)
DECLARE @MetaDescription nvarchar(MAX)
SET @MetaDescription = null -- clear cache (variable scope)
DECLARE @MetaTitle nvarchar(MAX)
SET @MetaTitle = null -- clear cache (variable scope)
DECLARE @SEName nvarchar(MAX)
SET @SEName = null -- clear cache (variable scope)
SELECT @Name = [Name],
@Description=[Description],
@MetaKeywords = [MetaKeywords],
@MetaDescription = [MetaDescription],
@MetaTitle = [MetaTitle],
@SEName = [SEName]
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'Name', @Name
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
IF (len(@Description) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'Description', @Description
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
IF (len(@MetaKeywords) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'MetaKeywords', @MetaKeywords
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
IF (len(@MetaDescription) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'MetaDescription', @MetaDescription
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
IF (len(@MetaTitle) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'MetaTitle', @MetaTitle
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
IF (len(@SEName) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ManufacturerID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Manufacturer', 'SEName', @SEName
FROM [Nop_ManufacturerLocalized]
WHERE [ManufacturerLocalizedID] = @OriginalManufacturerLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalmanufacturerlocalized INTO @OriginalManufacturerLocalizedId
END
CLOSE cur_originalmanufacturerlocalized
DEALLOCATE cur_originalmanufacturerlocalized
GO
--PRODUCT TAGS
PRINT 'moving product tags'
DECLARE @OriginalProductTagId int
DECLARE cur_originalproducttag CURSOR FOR
SELECT ProductTagId
FROM [Nop_ProductTag]
ORDER BY [ProductTagId]
OPEN cur_originalproducttag
FETCH NEXT FROM cur_originalproducttag INTO @OriginalProductTagId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product tag. ID ' + cast(@OriginalProductTagId as nvarchar(10))
SET IDENTITY_INSERT [ProductTag] ON
INSERT INTO [ProductTag] ([Id], [Name], [ProductCount])
SELECT [ProductTagId], [Name], [ProductCount]
FROM [Nop_ProductTag]
WHERE ProductTagId = @OriginalProductTagId
SET IDENTITY_INSERT [ProductTag] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproducttag INTO @OriginalProductTagId
END
CLOSE cur_originalproducttag
DEALLOCATE cur_originalproducttag
GO
--PRODUCTS
PRINT 'moving products'
DECLARE @OriginalProductId int
DECLARE cur_originalproduct CURSOR FOR
SELECT ProductId
FROM [Nop_Product]
ORDER BY [ProductId]
OPEN cur_originalproduct
FETCH NEXT FROM cur_originalproduct INTO @OriginalProductId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product. ID ' + cast(@OriginalProductId as nvarchar(10))
SET IDENTITY_INSERT [Product] ON
INSERT INTO [Product] ([Id], [Name], [ShortDescription], [FullDescription], [AdminComment], [ShowOnHomePage], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [AllowCustomerReviews], [ApprovedRatingSum], [NotApprovedRatingSum], [ApprovedTotalReviews], [NotApprovedTotalReviews], [Published], [Deleted], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [ProductId], [Name], [ShortDescription], [FullDescription], [AdminComment], [ShowOnHomePage], [MetaKeywords], [MetaDescription], [MetaTitle], [SeName], [AllowCustomerReviews], 0, 0, 0, 0, [Published], [Deleted], [CreatedOn], [UpdatedOn]
FROM [Nop_Product]
WHERE ProductId = @OriginalProductId
SET IDENTITY_INSERT [Product] OFF
--category mappings
INSERT INTO [Product_Category_Mapping] ([ProductId], [CategoryId], [IsFeaturedProduct], [DisplayOrder])
SELECT [ProductId], [CategoryId], [IsFeaturedProduct], [DisplayOrder]
FROM [Nop_Product_Category_Mapping]
WHERE ProductId = @OriginalProductId
--manufacturer mappings
INSERT INTO [Product_Manufacturer_Mapping] ([ProductId], [ManufacturerId], [IsFeaturedProduct], [DisplayOrder])
SELECT [ProductId], [ManufacturerId], [IsFeaturedProduct], [DisplayOrder]
FROM [Nop_Product_Manufacturer_Mapping]
WHERE ProductId = @OriginalProductId
--picture mappings
INSERT INTO [Product_Picture_Mapping] ([ProductId], [PictureId], [DisplayOrder])
SELECT [ProductId], [PictureId], [DisplayOrder]
FROM [Nop_ProductPicture]
WHERE ProductId = @OriginalProductId
--product tag mappings
INSERT INTO [Product_ProductTag_Mapping] ([Product_Id], [ProductTag_Id])
SELECT [ProductId], [ProductTagId]
FROM [Nop_ProductTag_Product_Mapping]
WHERE ProductId = @OriginalProductId
--fetch next identifier
FETCH NEXT FROM cur_originalproduct INTO @OriginalProductId
END
CLOSE cur_originalproduct
DEALLOCATE cur_originalproduct
GO
--LOCALIZED PRODUCTS
PRINT 'moving localized products'
DECLARE @OriginalProductLocalizedId int
DECLARE cur_originalproductlocalized CURSOR FOR
SELECT ProductLocalizedID
FROM [Nop_ProductLocalized]
ORDER BY [ProductLocalizedID]
OPEN cur_originalproductlocalized
FETCH NEXT FROM cur_originalproductlocalized INTO @OriginalProductLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized product. ID ' + cast(@OriginalProductLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @ShortDescription nvarchar(MAX)
SET @ShortDescription = null -- clear cache (variable scope)
DECLARE @FullDescription nvarchar(MAX)
SET @FullDescription = null -- clear cache (variable scope)
DECLARE @MetaKeywords nvarchar(MAX)
SET @MetaKeywords = null -- clear cache (variable scope)
DECLARE @MetaDescription nvarchar(MAX)
SET @MetaDescription = null -- clear cache (variable scope)
DECLARE @MetaTitle nvarchar(MAX)
SET @MetaTitle = null -- clear cache (variable scope)
DECLARE @SEName nvarchar(MAX)
SET @SEName = null -- clear cache (variable scope)
SELECT @Name = [Name],
@ShortDescription=[ShortDescription],
@FullDescription = [FullDescription],
@MetaKeywords = [MetaKeywords],
@MetaDescription = [MetaDescription],
@MetaTitle = [MetaTitle],
@SEName = [SEName]
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'Name', @Name
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@ShortDescription) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'ShortDescription', @ShortDescription
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@FullDescription) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'FullDescription', @FullDescription
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@MetaKeywords) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'MetaKeywords', @MetaKeywords
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@MetaDescription) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'MetaDescription', @MetaDescription
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@MetaTitle) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'MetaTitle', @MetaTitle
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
IF (len(@SEName) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'Product', 'SEName', @SEName
FROM [Nop_ProductLocalized]
WHERE [ProductLocalizedID] = @OriginalProductLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalproductlocalized INTO @OriginalProductLocalizedId
END
CLOSE cur_originalproductlocalized
DEALLOCATE cur_originalproductlocalized
GO
--RELATED PRODUCTS
PRINT 'moving related products'
DECLARE @OriginalRelatedProductId int
DECLARE cur_originalrelatedproduct CURSOR FOR
SELECT RelatedProductId
FROM [Nop_RelatedProduct]
ORDER BY [RelatedProductId]
OPEN cur_originalrelatedproduct
FETCH NEXT FROM cur_originalrelatedproduct INTO @OriginalRelatedProductId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving related product. ID ' + cast(@OriginalRelatedProductId as nvarchar(10))
INSERT INTO [RelatedProduct] ([ProductId1], [ProductId2], [DisplayOrder])
SELECT [ProductID1], [ProductID2], [DisplayOrder]
FROM [Nop_RelatedProduct]
WHERE RelatedProductId = @OriginalRelatedProductId
--fetch next identifier
FETCH NEXT FROM cur_originalrelatedproduct INTO @OriginalRelatedProductId
END
CLOSE cur_originalrelatedproduct
DEALLOCATE cur_originalrelatedproduct
GO
--CROSSSELL PRODUCTS
PRINT 'moving crosssell products'
DECLARE @OriginalCrossSellProductId int
DECLARE cur_originalcrosssellproduct CURSOR FOR
SELECT CrossSellProductId
FROM [Nop_CrossSellProduct]
ORDER BY [CrossSellProductId]
OPEN cur_originalcrosssellproduct
FETCH NEXT FROM cur_originalcrosssellproduct INTO @OriginalCrossSellProductId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving crosssell product. ID ' + cast(@OriginalCrossSellProductId as nvarchar(10))
INSERT INTO [CrossSellProduct] ([ProductId1], [ProductId2])
SELECT [ProductID1], [ProductID2]
FROM [Nop_CrossSellProduct]
WHERE CrossSellProductId = @OriginalCrossSellProductId
--fetch next identifier
FETCH NEXT FROM cur_originalcrosssellproduct INTO @OriginalCrossSellProductId
END
CLOSE cur_originalcrosssellproduct
DEALLOCATE cur_originalcrosssellproduct
GO
--SPECIFICATION ATTRIBUTES
PRINT 'moving specification attributes'
DECLARE @OriginalSpecificationAttributeId int
DECLARE cur_originalspecificationattribute CURSOR FOR
SELECT SpecificationAttributeId
FROM [Nop_SpecificationAttribute]
ORDER BY [SpecificationAttributeId]
OPEN cur_originalspecificationattribute
FETCH NEXT FROM cur_originalspecificationattribute INTO @OriginalSpecificationAttributeId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving specification attribute. ID ' + cast(@OriginalSpecificationAttributeId as nvarchar(10))
SET IDENTITY_INSERT [SpecificationAttribute] ON
INSERT INTO [SpecificationAttribute] ([Id], [Name], [DisplayOrder])
SELECT [SpecificationAttributeId], [Name], [DisplayOrder]
FROM [Nop_SpecificationAttribute]
WHERE SpecificationAttributeId = @OriginalSpecificationAttributeId
SET IDENTITY_INSERT [SpecificationAttribute] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalspecificationattribute INTO @OriginalSpecificationAttributeId
END
CLOSE cur_originalspecificationattribute
DEALLOCATE cur_originalspecificationattribute
GO
--LOCALIZED SPECIFICATION ATTRIBUTE
PRINT 'moving localized specification attributes'
DECLARE @OriginalSpecificationAttributeLocalizedId int
DECLARE cur_originalspecificationattributelocalized CURSOR FOR
SELECT SpecificationAttributeLocalizedID
FROM [Nop_SpecificationAttributeLocalized]
ORDER BY [SpecificationAttributeLocalizedID]
OPEN cur_originalspecificationattributelocalized
FETCH NEXT FROM cur_originalspecificationattributelocalized INTO @OriginalSpecificationAttributeLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized specification attribute. ID ' + cast(@OriginalSpecificationAttributeLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
SELECT @Name = [Name]
FROM [Nop_SpecificationAttributeLocalized]
WHERE [SpecificationAttributeLocalizedID] = @OriginalSpecificationAttributeLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [SpecificationAttributeID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'SpecificationAttribute', 'Name', @Name
FROM [Nop_SpecificationAttributeLocalized]
WHERE [SpecificationAttributeLocalizedID] = @OriginalSpecificationAttributeLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalspecificationattributelocalized INTO @OriginalSpecificationAttributeLocalizedId
END
CLOSE cur_originalspecificationattributelocalized
DEALLOCATE cur_originalspecificationattributelocalized
GO
--SPECIFICATION ATTRIBUTE OPTIONS
PRINT 'moving specification attribute options'
DECLARE @OriginalSpecificationAttributeOptionId int
DECLARE cur_originalspecificationattributeoption CURSOR FOR
SELECT SpecificationAttributeOptionId
FROM [Nop_SpecificationAttributeOption]
ORDER BY [SpecificationAttributeOptionId]
OPEN cur_originalspecificationattributeoption
FETCH NEXT FROM cur_originalspecificationattributeoption INTO @OriginalSpecificationAttributeOptionId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving specification attribute option. ID ' + cast(@OriginalSpecificationAttributeOptionId as nvarchar(10))
SET IDENTITY_INSERT [SpecificationAttributeOption] ON
INSERT INTO [SpecificationAttributeOption] ([Id], [SpecificationAttributeId], [Name], [DisplayOrder])
SELECT [SpecificationAttributeOptionId], [SpecificationAttributeId], [Name], [DisplayOrder]
FROM [Nop_SpecificationAttributeOption]
WHERE SpecificationAttributeOptionId = @OriginalSpecificationAttributeOptionId
SET IDENTITY_INSERT [SpecificationAttributeOption] OFF
--product mapping
INSERT INTO [Product_SpecificationAttribute_Mapping] ([ProductId], [SpecificationAttributeOptionId], [AllowFiltering], [ShowOnProductPage], [DisplayOrder])
SELECT [ProductId], [SpecificationAttributeOptionId], [AllowFiltering], [ShowOnProductPage], [DisplayOrder]
FROM [Nop_Product_SpecificationAttribute_Mapping]
WHERE SpecificationAttributeOptionId = @OriginalSpecificationAttributeOptionId
--fetch next identifier
FETCH NEXT FROM cur_originalspecificationattributeoption INTO @OriginalSpecificationAttributeOptionId
END
CLOSE cur_originalspecificationattributeoption
DEALLOCATE cur_originalspecificationattributeoption
GO
--LOCALIZED SPECIFICATION ATTRIBUTE OPTION
PRINT 'moving localized specification attribute option'
DECLARE @OriginalSpecificationAttributeOptionLocalizedId int
DECLARE cur_originalspecificationattributeoptionlocalized CURSOR FOR
SELECT SpecificationAttributeOptionLocalizedID
FROM [Nop_SpecificationAttributeOptionLocalized]
ORDER BY [SpecificationAttributeOptionLocalizedID]
OPEN cur_originalspecificationattributeoptionlocalized
FETCH NEXT FROM cur_originalspecificationattributeoptionlocalized INTO @OriginalSpecificationAttributeOptionLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized product variant attribute option. ID ' + cast(@OriginalSpecificationAttributeOptionLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
SELECT @Name = [Name]
FROM [Nop_SpecificationAttributeOptionLocalized]
WHERE [SpecificationAttributeOptionLocalizedID] = @OriginalSpecificationAttributeOptionLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [SpecificationAttributeOptionID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'SpecificationAttributeOption', 'Name', @Name
FROM [Nop_SpecificationAttributeOptionLocalized]
WHERE [SpecificationAttributeOptionLocalizedID] = @OriginalSpecificationAttributeOptionLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalspecificationattributeoptionlocalized INTO @OriginalSpecificationAttributeOptionLocalizedId
END
CLOSE cur_originalspecificationattributeoptionlocalized
DEALLOCATE cur_originalspecificationattributeoptionlocalized
GO
--CHECKOUT ATTRIBUTES
PRINT 'moving checkout attributes'
DECLARE @OriginalCheckoutAttributeId int
DECLARE cur_originalcheckoutattribute CURSOR FOR
SELECT CheckoutAttributeId
FROM [Nop_CheckoutAttribute]
ORDER BY [CheckoutAttributeId]
OPEN cur_originalcheckoutattribute
FETCH NEXT FROM cur_originalcheckoutattribute INTO @OriginalCheckoutAttributeId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving checkout attribute. ID ' + cast(@OriginalCheckoutAttributeId as nvarchar(10))
SET IDENTITY_INSERT [CheckoutAttribute] ON
INSERT INTO [CheckoutAttribute] ([Id], [Name], [TextPrompt], [IsRequired], [ShippableProductRequired], [IsTaxExempt], [TaxCategoryID], [AttributeControlTypeID], [DisplayOrder])
SELECT [CheckoutAttributeId], [Name], [TextPrompt], [IsRequired], [ShippableProductRequired], [IsTaxExempt], [TaxCategoryID], [AttributeControlTypeID], [DisplayOrder]
FROM [Nop_CheckoutAttribute]
WHERE CheckoutAttributeId = @OriginalCheckoutAttributeId
SET IDENTITY_INSERT [CheckoutAttribute] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalcheckoutattribute INTO @OriginalCheckoutAttributeId
END
CLOSE cur_originalcheckoutattribute
DEALLOCATE cur_originalcheckoutattribute
GO
--LOCALIZED CHECKOUT ATTRIBUTES
PRINT 'moving localized checkout attributes'
DECLARE @OriginalCheckoutAttributeLocalizedId int
DECLARE cur_originalcheckoutattributelocalized CURSOR FOR
SELECT CheckoutAttributeLocalizedID
FROM [Nop_CheckoutAttributeLocalized]
ORDER BY [CheckoutAttributeLocalizedID]
OPEN cur_originalcheckoutattributelocalized
FETCH NEXT FROM cur_originalcheckoutattributelocalized INTO @OriginalCheckoutAttributeLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized checkout attribute. ID ' + cast(@OriginalCheckoutAttributeLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @TextPrompt nvarchar(MAX)
SET @TextPrompt = null -- clear cache (variable scope)
SELECT @Name = [Name],
@TextPrompt=[TextPrompt]
FROM [Nop_CheckoutAttributeLocalized]
WHERE [CheckoutAttributeLocalizedID] = @OriginalCheckoutAttributeLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CheckoutAttributeID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'CheckoutAttribute', 'Name', @Name
FROM [Nop_CheckoutAttributeLocalized]
WHERE [CheckoutAttributeLocalizedID] = @OriginalCheckoutAttributeLocalizedId
END
IF (len(@TextPrompt) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CheckoutAttributeID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'CheckoutAttribute', 'TextPrompt', @TextPrompt
FROM [Nop_CheckoutAttributeLocalized]
WHERE [CheckoutAttributeLocalizedID] = @OriginalCheckoutAttributeLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalcheckoutattributelocalized INTO @OriginalCheckoutAttributeLocalizedId
END
CLOSE cur_originalcheckoutattributelocalized
DEALLOCATE cur_originalcheckoutattributelocalized
GO
--CHECKOUT ATTRIBUTE VALUES
PRINT 'moving checkout attribute values'
DECLARE @OriginalCheckoutAttributeValueId int
DECLARE cur_originalcheckoutattributevalue CURSOR FOR
SELECT CheckoutAttributeValueId
FROM [Nop_CheckoutAttributeValue]
ORDER BY [CheckoutAttributeValueId]
OPEN cur_originalcheckoutattributevalue
FETCH NEXT FROM cur_originalcheckoutattributevalue INTO @OriginalCheckoutAttributeValueId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving checkout attribute value. ID ' + cast(@OriginalCheckoutAttributeValueId as nvarchar(10))
SET IDENTITY_INSERT [CheckoutAttributeValue] ON
INSERT INTO [CheckoutAttributeValue] ([Id], [CheckoutAttributeId], [Name], [PriceAdjustment], [WeightAdjustment], [IsPreSelected], [DisplayOrder])
SELECT [CheckoutAttributeValueId], [CheckoutAttributeId], [Name], [PriceAdjustment], [WeightAdjustment], [IsPreSelected], [DisplayOrder]
FROM [Nop_CheckoutAttributeValue]
WHERE CheckoutAttributeValueId = @OriginalCheckoutAttributeValueId
SET IDENTITY_INSERT [CheckoutAttributeValue] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalcheckoutattributevalue INTO @OriginalCheckoutAttributeValueId
END
CLOSE cur_originalcheckoutattributevalue
DEALLOCATE cur_originalcheckoutattributevalue
GO
--LOCALIZED CHECKOUT ATTRIBUTE VALUE
PRINT 'moving localized checkout attribute value'
DECLARE @OriginalCheckoutAttributeValueLocalizedId int
DECLARE cur_originalcheckoutattributevaluelocalized CURSOR FOR
SELECT CheckoutAttributeValueLocalizedID
FROM [Nop_CheckoutAttributeValueLocalized]
ORDER BY [CheckoutAttributeValueLocalizedID]
OPEN cur_originalcheckoutattributevaluelocalized
FETCH NEXT FROM cur_originalcheckoutattributevaluelocalized INTO @OriginalCheckoutAttributeValueLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized checkout attribute value. ID ' + cast(@OriginalCheckoutAttributeValueLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
SELECT @Name = [Name]
FROM [Nop_CheckoutAttributeValueLocalized]
WHERE [CheckoutAttributeValueLocalizedID] = @OriginalCheckoutAttributeValueLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [CheckoutAttributeValueID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'CheckoutAttributeValue', 'Name', @Name
FROM [Nop_CheckoutAttributeValueLocalized]
WHERE [CheckoutAttributeValueLocalizedID] = @OriginalCheckoutAttributeValueLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalcheckoutattributevaluelocalized INTO @OriginalCheckoutAttributeValueLocalizedId
END
CLOSE cur_originalcheckoutattributevaluelocalized
DEALLOCATE cur_originalcheckoutattributevaluelocalized
GO
--PRODUCT VARIANTS
PRINT 'moving product variants'
DECLARE @OriginalProductVariantId int
DECLARE cur_originalproductvariant CURSOR FOR
SELECT ProductVariantId
FROM [Nop_ProductVariant]
ORDER BY [ProductVariantId]
OPEN cur_originalproductvariant
FETCH NEXT FROM cur_originalproductvariant INTO @OriginalProductVariantId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product variant. ID ' + cast(@OriginalProductVariantId as nvarchar(10))
SET IDENTITY_INSERT [ProductVariant] ON
INSERT INTO [ProductVariant] ([Id], [ProductId], [Name], [Sku], [Description], [AdminComment], [ManufacturerPartNumber], [IsGiftCard], [GiftCardTypeId], [IsDownload], [DownloadId], [UnlimitedDownloads], [MaxNumberOfDownloads], [DownloadExpirationDays], [DownloadActivationTypeId], [HasSampleDownload], [SampleDownloadId], [HasUserAgreement], [UserAgreementText], [IsRecurring], [RecurringCycleLength], [RecurringCyclePeriodId], [RecurringTotalCycles], [IsShipEnabled], [IsFreeShipping], [AdditionalShippingCharge], [IsTaxExempt], [TaxCategoryId], [ManageInventoryMethodId], [StockQuantity], [DisplayStockAvailability], [DisplayStockQuantity], [MinStockQuantity], [LowStockActivityId], [NotifyAdminForQuantityBelow], [BackorderModeId], [OrderMinimumQuantity], [OrderMaximumQuantity], [DisableBuyButton], [CallForPrice], [Price], [OldPrice], [ProductCost], [CustomerEntersPrice], [MinimumCustomerEnteredPrice], [MaximumCustomerEnteredPrice], [Weight], [Length], [Width], [Height], [PictureId], [AvailableStartDateTimeUtc], [AvailableEndDateTimeUtc], [Published], [Deleted], [DisplayOrder], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [ProductVariantId], [ProductId], [Name], [Sku], [Description], [AdminComment], [ManufacturerPartNumber], [IsGiftCard], [GiftCardType], [IsDownload], [DownloadId], [UnlimitedDownloads], [MaxNumberOfDownloads], [DownloadExpirationDays], [DownloadActivationType], [HasSampleDownload], [SampleDownloadId], [HasUserAgreement], [UserAgreementText], [IsRecurring], [CycleLength], [CyclePeriod], [TotalCycles], [IsShipEnabled], [IsFreeShipping], [AdditionalShippingCharge], [IsTaxExempt], [TaxCategoryID], [ManageInventory], [StockQuantity], [DisplayStockAvailability], [DisplayStockQuantity], [MinStockQuantity], [LowStockActivityId], [NotifyAdminForQuantityBelow], [Backorders], [OrderMinimumQuantity], [OrderMaximumQuantity], [DisableBuyButton], [CallForPrice], [Price], [OldPrice], [ProductCost], [CustomerEntersPrice], [MinimumCustomerEnteredPrice], [MaximumCustomerEnteredPrice], [Weight], [Length], [Width], [Height], [PictureId], [AvailableStartDateTime], [AvailableEndDateTime], [Published], [Deleted], [DisplayOrder], [CreatedOn], [UpdatedOn]
FROM [Nop_ProductVariant]
WHERE ProductVariantId = @OriginalProductVariantId
SET IDENTITY_INSERT [ProductVariant] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproductvariant INTO @OriginalProductVariantId
END
CLOSE cur_originalproductvariant
DEALLOCATE cur_originalproductvariant
GO
--LOCALIZED PRODUCTS
PRINT 'moving localized product variants'
DECLARE @OriginalProductVariantLocalizedId int
DECLARE cur_originalproductvarriantlocalized CURSOR FOR
SELECT ProductVariantLocalizedID
FROM [Nop_ProductVariantLocalized]
ORDER BY [ProductVariantLocalizedID]
OPEN cur_originalproductvarriantlocalized
FETCH NEXT FROM cur_originalproductvarriantlocalized INTO @OriginalProductVariantLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized product variant. ID ' + cast(@OriginalProductVariantLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @Description nvarchar(MAX)
SET @Description = null -- clear cache (variable scope)
SELECT @Name = [Name],
@Description=[Description]
FROM [Nop_ProductVariantLocalized]
WHERE [ProductVariantLocalizedID] = @OriginalProductVariantLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductVariantID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'ProductVariant', 'Name', @Name
FROM [Nop_ProductVariantLocalized]
WHERE [ProductVariantLocalizedID] = @OriginalProductVariantLocalizedId
END
IF (len(@Description) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductVariantID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'ProductVariant', 'Description', @Description
FROM [Nop_ProductVariantLocalized]
WHERE [ProductVariantLocalizedID] = @OriginalProductVariantLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalproductvarriantlocalized INTO @OriginalProductVariantLocalizedId
END
CLOSE cur_originalproductvarriantlocalized
DEALLOCATE cur_originalproductvarriantlocalized
GO
--PRODUCT ATTRIBUTES
PRINT 'moving product attributes'
DECLARE @OriginalProductAttributeId int
DECLARE cur_originalproductattribute CURSOR FOR
SELECT ProductAttributeId
FROM [Nop_ProductAttribute]
ORDER BY [ProductAttributeId]
OPEN cur_originalproductattribute
FETCH NEXT FROM cur_originalproductattribute INTO @OriginalProductAttributeId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product attribute. ID ' + cast(@OriginalProductAttributeId as nvarchar(10))
SET IDENTITY_INSERT [ProductAttribute] ON
INSERT INTO [ProductAttribute] ([Id], [Name], [Description])
SELECT [ProductAttributeId], [Name], [Description]
FROM [Nop_ProductAttribute]
WHERE ProductAttributeId = @OriginalProductAttributeId
SET IDENTITY_INSERT [ProductAttribute] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproductattribute INTO @OriginalProductAttributeId
END
CLOSE cur_originalproductattribute
DEALLOCATE cur_originalproductattribute
GO
--LOCALIZED PRODUCT ATTRIBUTES
PRINT 'moving localized product attribute'
DECLARE @OriginalProductAttributeLocalizedId int
DECLARE cur_originalproductattributelocalized CURSOR FOR
SELECT ProductAttributeLocalizedID
FROM [Nop_ProductAttributeLocalized]
ORDER BY [ProductAttributeLocalizedID]
OPEN cur_originalproductattributelocalized
FETCH NEXT FROM cur_originalproductattributelocalized INTO @OriginalProductAttributeLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized product attribute. ID ' + cast(@OriginalProductAttributeLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
DECLARE @Description nvarchar(MAX)
SET @Description = null -- clear cache (variable scope)
SELECT @Name = [Name],
@Description=[Description]
FROM [Nop_ProductAttributeLocalized]
WHERE [ProductAttributeLocalizedID] = @OriginalProductAttributeLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductAttributeID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'ProductAttribute', 'Name', @Name
FROM [Nop_ProductAttributeLocalized]
WHERE [ProductAttributeLocalizedID] = @OriginalProductAttributeLocalizedId
END
IF (len(@Description) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductAttributeID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'ProductAttribute', 'Description', @Description
FROM [Nop_ProductAttributeLocalized]
WHERE [ProductAttributeLocalizedID] = @OriginalProductAttributeLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalproductattributelocalized INTO @OriginalProductAttributeLocalizedId
END
CLOSE cur_originalproductattributelocalized
DEALLOCATE cur_originalproductattributelocalized
GO
--PRODUCT VARIANT ATTRIBUTES (MAPPING)
PRINT 'moving product variant attributes'
DECLARE @OriginalProductVariantAttributeId int
DECLARE cur_originalproductvariantattribute CURSOR FOR
SELECT ProductVariantAttributeID
FROM [Nop_ProductVariant_ProductAttribute_Mapping]
ORDER BY [ProductVariantAttributeID]
OPEN cur_originalproductvariantattribute
FETCH NEXT FROM cur_originalproductvariantattribute INTO @OriginalProductVariantAttributeId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product variant attribute. ID ' + cast(@OriginalProductVariantAttributeId as nvarchar(10))
SET IDENTITY_INSERT [ProductVariant_ProductAttribute_Mapping] ON
INSERT INTO [ProductVariant_ProductAttribute_Mapping] ([Id], [ProductVariantId], [ProductAttributeId], [TextPrompt], [IsRequired], [AttributeControlTypeId], [DisplayOrder])
SELECT [ProductVariantAttributeID], [ProductVariantId], [ProductAttributeId], [TextPrompt], [IsRequired], [AttributeControlTypeId], [DisplayOrder]
FROM [Nop_ProductVariant_ProductAttribute_Mapping]
WHERE ProductVariantAttributeID = @OriginalProductVariantAttributeId
SET IDENTITY_INSERT [ProductVariant_ProductAttribute_Mapping] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproductvariantattribute INTO @OriginalProductVariantAttributeId
END
CLOSE cur_originalproductvariantattribute
DEALLOCATE cur_originalproductvariantattribute
GO
--PRODUCT VARIANT ATTRIBUTE VALUES
PRINT 'moving product variant attribute values'
DECLARE @OriginalProductVariantAttributeValueId int
DECLARE cur_originalproductvariantattributevalue CURSOR FOR
SELECT ProductVariantAttributeValueId
FROM [Nop_ProductVariantAttributeValue]
ORDER BY [ProductVariantAttributeValueId]
OPEN cur_originalproductvariantattributevalue
FETCH NEXT FROM cur_originalproductvariantattributevalue INTO @OriginalProductVariantAttributeValueId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product variant attribute value. ID ' + cast(@OriginalProductVariantAttributeValueId as nvarchar(10))
SET IDENTITY_INSERT [ProductVariantAttributeValue] ON
INSERT INTO [ProductVariantAttributeValue] ([Id], [ProductVariantAttributeId], [Name], [PriceAdjustment], [WeightAdjustment], [IsPreSelected], [DisplayOrder])
SELECT [ProductVariantAttributeValueId], [ProductVariantAttributeId], [Name], [PriceAdjustment], [WeightAdjustment], [IsPreSelected], [DisplayOrder]
FROM [Nop_ProductVariantAttributeValue]
WHERE ProductVariantAttributeValueId = @OriginalProductVariantAttributeValueId
SET IDENTITY_INSERT [ProductVariantAttributeValue] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproductvariantattributevalue INTO @OriginalProductVariantAttributeValueId
END
CLOSE cur_originalproductvariantattributevalue
DEALLOCATE cur_originalproductvariantattributevalue
GO
--LOCALIZED PRODUCT VARIANT ATTRIBUTE VALUE
PRINT 'moving localized product variant attribute value'
DECLARE @OriginalProductVariantAttributeValueLocalizedId int
DECLARE cur_originalproductvariantattributevaluelocalized CURSOR FOR
SELECT ProductVariantAttributeValueLocalizedID
FROM [Nop_ProductVariantAttributeValueLocalized]
ORDER BY [ProductVariantAttributeValueLocalizedID]
OPEN cur_originalproductvariantattributevaluelocalized
FETCH NEXT FROM cur_originalproductvariantattributevaluelocalized INTO @OriginalProductVariantAttributeValueLocalizedId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving localized product variant attribute value. ID ' + cast(@OriginalProductVariantAttributeValueLocalizedId as nvarchar(10))
DECLARE @Name nvarchar(MAX)
SET @Name = null -- clear cache (variable scope)
SELECT @Name = [Name]
FROM [Nop_ProductVariantAttributeValueLocalized]
WHERE [ProductVariantAttributeValueLocalizedID] = @OriginalProductVariantAttributeValueLocalizedId
IF (len(@Name) > 0)
BEGIN
INSERT INTO [LocalizedProperty] ([EntityId], [LanguageId], [LocaleKeyGroup], [LocaleKey], [LocaleValue])
SELECT [ProductVariantAttributeValueID], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[LanguageId]), 'ProductVariantAttributeValue', 'Name', @Name
FROM [Nop_ProductVariantAttributeValueLocalized]
WHERE [ProductVariantAttributeValueLocalizedID] = @OriginalProductVariantAttributeValueLocalizedId
END
--fetch next identifier
FETCH NEXT FROM cur_originalproductvariantattributevaluelocalized INTO @OriginalProductVariantAttributeValueLocalizedId
END
CLOSE cur_originalproductvariantattributevaluelocalized
DEALLOCATE cur_originalproductvariantattributevaluelocalized
GO
--PRODUCT VARIANT ATTRIBUTE COMBINATIONS
PRINT 'moving product variant attribute combinations'
DECLARE @OriginalProductVariantAttributeCombinationId int
DECLARE cur_originalproductvariantattributecombination CURSOR FOR
SELECT ProductVariantAttributeCombinationId
FROM [Nop_ProductVariantAttributeCombination]
ORDER BY [ProductVariantAttributeCombinationId]
OPEN cur_originalproductvariantattributecombination
FETCH NEXT FROM cur_originalproductvariantattributecombination INTO @OriginalProductVariantAttributeCombinationId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product variant attribute combination. ID ' + cast(@OriginalProductVariantAttributeCombinationId as nvarchar(10))
SET IDENTITY_INSERT [ProductVariantAttributeCombination] ON
INSERT INTO [ProductVariantAttributeCombination] ([Id], [ProductVariantID], [AttributesXML], [StockQuantity], [AllowOutOfStockOrders])
SELECT [ProductVariantAttributeCombinationId], [ProductVariantID], cast([AttributesXML] as nvarchar(MAX)), [StockQuantity], [AllowOutOfStockOrders]
FROM [Nop_ProductVariantAttributeCombination]
WHERE ProductVariantAttributeCombinationId = @OriginalProductVariantAttributeCombinationId
SET IDENTITY_INSERT [ProductVariantAttributeCombination] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalproductvariantattributecombination INTO @OriginalProductVariantAttributeCombinationId
END
CLOSE cur_originalproductvariantattributecombination
DEALLOCATE cur_originalproductvariantattributecombination
GO
--TIER PRICES
PRINT 'moving tier prices'
DECLARE @OriginalTierPriceId int
DECLARE cur_originaltierprice CURSOR FOR
SELECT TierPriceId
FROM [Nop_TierPrice]
ORDER BY [TierPriceId]
OPEN cur_originaltierprice
FETCH NEXT FROM cur_originaltierprice INTO @OriginalTierPriceId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving tier price. ID ' + cast(@OriginalTierPriceId as nvarchar(10))
SET IDENTITY_INSERT [TierPrice] ON
INSERT INTO [TierPrice] ([Id], [ProductVariantId], [Quantity], [Price])
SELECT [TierPriceId], [ProductVariantID], [Quantity], [Price]
FROM [Nop_TierPrice]
WHERE TierPriceId = @OriginalTierPriceId
SET IDENTITY_INSERT [TierPrice] OFF
--fetch next identifier
FETCH NEXT FROM cur_originaltierprice INTO @OriginalTierPriceId
END
CLOSE cur_originaltierprice
DEALLOCATE cur_originaltierprice
GO
--DISCOUNTS
--first delete already [Deleted] discounts
DELETE FROM [Nop_Discount]
WHERE [Deleted]=1
GO
--move discounts
PRINT 'moving discounts'
DECLARE @OriginalDiscountId int
DECLARE cur_originaldiscount CURSOR FOR
SELECT DiscountId
FROM [Nop_Discount]
WHERE Deleted=0
ORDER BY [DiscountId]
OPEN cur_originaldiscount
FETCH NEXT FROM cur_originaldiscount INTO @OriginalDiscountId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving discount. ID ' + cast(@OriginalDiscountId as nvarchar(10))
DECLARE @NewDiscountLimitationId int
SET @NewDiscountLimitationId = null -- clear cache (variable scope)
DECLARE @NewLimitationTimes int
SET @NewLimitationTimes = null -- clear cache (variable scope)
SELECT @NewDiscountLimitationId = [DiscountLimitationId], @NewLimitationTimes = [LimitationTimes]
FROM [Nop_Discount]
WHERE DiscountId = @OriginalDiscountId
--we removed the following discount limitation types: OneTimeOnly, OneTimePerCustomer
IF (@NewDiscountLimitationId = 10) -- OneTimeOnly
BEGIN
SET @NewDiscountLimitationId = 15
SET @NewLimitationTimes = 1
END
IF (@NewDiscountLimitationId = 20) -- OneTimePerCustomer
BEGIN
SET @NewDiscountLimitationId = 25
SET @NewLimitationTimes = 1
END
SET IDENTITY_INSERT [Discount] ON
INSERT INTO [Discount] ([Id], [Name], [DiscountTypeId], [UsePercentage], [DiscountPercentage], [DiscountAmount], [StartDateUtc], [EndDateUtc], [RequiresCouponCode], [CouponCode], [DiscountLimitationId], [LimitationTimes])
SELECT [DiscountId], [Name], [DiscountTypeId], [UsePercentage], [DiscountPercentage], [DiscountAmount], [StartDate], [EndDate], [RequiresCouponCode], [CouponCode], @NewDiscountLimitationId, @NewLimitationTimes
FROM [Nop_Discount]
WHERE DiscountId = @OriginalDiscountId
SET IDENTITY_INSERT [Discount] OFF
--category mappings
INSERT INTO [Discount_AppliedToCategories] ([Discount_Id], [Category_Id])
SELECT [DiscountId], [CategoryID]
FROM [Nop_Category_Discount_Mapping]
WHERE DiscountID = @OriginalDiscountId
--product variant mappings
INSERT INTO [Discount_AppliedToProductVariants] ([Discount_Id], [ProductVariant_Id])
SELECT [DiscountId], [ProductVariantID]
FROM [Nop_ProductVariant_Discount_Mapping]
WHERE DiscountID = @OriginalDiscountId
--fetch next identifier
FETCH NEXT FROM cur_originaldiscount INTO @OriginalDiscountId
END
CLOSE cur_originaldiscount
DEALLOCATE cur_originaldiscount
GO
--ORDERS
PRINT 'moving orders'
DECLARE @OriginalOrderId int
DECLARE cur_originalorder CURSOR FOR
SELECT OrderId
FROM [Nop_Order]
ORDER BY [OrderId]
OPEN cur_originalorder
FETCH NEXT FROM cur_originalorder INTO @OriginalOrderId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving order. ID ' + cast(@OriginalOrderId as nvarchar(10))
--set @PaymentMethodSystemName
--it's set according to IDs in old [Nop_PaymentMethod] table
DECLARE @PaymentMethodSystemName nvarchar(100)
SET @PaymentMethodSystemName = null -- clear cache (variable scope)
DECLARE @OldPaymentMethodId nvarchar(100)
SET @OldPaymentMethodId = null -- clear cache (variable scope)
SELECT @OldPaymentMethodId = [PaymentMethodId]
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
SELECT @PaymentMethodSystemName = CASE @OldPaymentMethodId
WHEN 9 THEN N'Payments.AuthorizeNet'
WHEN 15 THEN N'Payments.CashOnDelivery'
WHEN 17 THEN N'Payments.CheckMoneyOrder'
WHEN 14 THEN N'Payments.GoogleCheckout'
WHEN 1 THEN N'Payments.Manual'
WHEN 25 THEN N'Payments.PayInStore'
WHEN 7 THEN N'Payments.PayPalDirect'
WHEN 2 THEN N'Payments.PayPalStandard'
WHEN 18 THEN N'Payments.PurchaseOrder'
END
--calculate exchange rate
DECLARE @CurrencyRate decimal(18, 4)
SET @CurrencyRate = null -- clear cache (variable scope)
DECLARE @OldOrderTotalInCustomerCurrency decimal(18, 4)
DECLARE @OldOrderTotal decimal(18, 4)
SELECT @OldOrderTotalInCustomerCurrency=[OrderTotalInCustomerCurrency],
@OldOrderTotal=[OrderTotal]
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
IF (@OldOrderTotalInCustomerCurrency > 0 and @OldOrderTotal > 0)
BEGIN
--use order total
SET @CurrencyRate = @OldOrderTotalInCustomerCurrency / @OldOrderTotal
END
ELSE
BEGIN
--order total can be 0. in this case let's use subtotal
DECLARE @OldOrderSubTotalInCustomerCurrency decimal(18, 4)
DECLARE @OldOrderSubTotal decimal(18, 4)
SELECT @OldOrderSubTotalInCustomerCurrency=[OrderSubTotalInclTaxInCustomerCurrency],
@OldOrderSubTotal=[OrderSubTotalInclTax]
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
IF (@OldOrderSubTotalInCustomerCurrency > 0 and @OldOrderSubTotal > 0)
BEGIN
--use order subtotal
SET @CurrencyRate = @OldOrderSubTotalInCustomerCurrency / @OldOrderSubTotal
END
ELSE
BEGIN
--order total can be 0. in this case let's use subtotal
DECLARE @OldOrderShippingInCustomerCurrency decimal(18, 4)
DECLARE @OldOrderShipping decimal(18, 4)
SELECT @OldOrderShippingInCustomerCurrency=[OrderShippingInclTaxInCustomerCurrency],
@OldOrderShipping=[OrderShippingInclTax]
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
IF (@OldOrderShippingInCustomerCurrency > 0 and @OldOrderShipping > 0)
BEGIN
SET @CurrencyRate = @OldOrderShippingInCustomerCurrency / @OldOrderShipping
END
END
END
--some exchange rate validation
IF (@CurrencyRate is null or @CurrencyRate = 0)
BEGIN
SET @CurrencyRate = 1
END
--TODO set @ShippingRateComputationMethodSystemName (although it's not used)
DECLARE @ShippingRateComputationMethodSystemName nvarchar(100)
SET @ShippingRateComputationMethodSystemName = null -- clear cache (variable scope)
--insert billing address (now stored into [Address] table
DECLARE @BillingAddressId int
SET @BillingAddressId = null -- clear cache (variable scope)
INSERT INTO [Address] ([FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], [StateProvinceID], [ZipPostalCode], [CountryID], [CreatedOnUtc])
SELECT [BillingFirstName], [BillingLastName], [BillingPhoneNumber], [BillingEmail], [BillingFaxNumber], [BillingCompany], [BillingAddress1], [BillingAddress2], [BillingCity], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'StateProvince' and [OriginalId]=[BillingStateProvinceID]), [BillingZipPostalCode], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=[BillingCountryID]), getutcdate()
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
SET @BillingAddressId = @@IDENTITY
--insert shipping address
DECLARE @ShippingStatusId int
SELECT @ShippingStatusId = ShippingStatusId
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
DECLARE @ShippingAddressId int
SET @ShippingAddressId = null -- clear cache (variable scope)
IF (@ShippingStatusId <> 10)
BEGIN
--shipping is required
INSERT INTO [Address] ([FirstName], [LastName], [PhoneNumber], [Email], [FaxNumber], [Company], [Address1], [Address2], [City], [StateProvinceID], [ZipPostalCode], [CountryID], [CreatedOnUtc])
SELECT [ShippingFirstName], [ShippingLastName], [ShippingPhoneNumber], [ShippingEmail], [ShippingFaxNumber], [ShippingCompany], [ShippingAddress1], [ShippingAddress2], [ShippingCity], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'StateProvince' and [OriginalId]=[ShippingStateProvinceID]), [ShippingZipPostalCode], (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Country' and [OriginalId]=[ShippingCountryID]), getutcdate()
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
SET @ShippingAddressId = @@IDENTITY
END
--customer tax display type
DECLARE @CustomerTaxDisplayTypeId int
SET @CustomerTaxDisplayTypeId = null -- clear cache (variable scope)
SELECT @CustomerTaxDisplayTypeId=[CustomerTaxDisplayTypeId]
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
IF (@CustomerTaxDisplayTypeId = 1)
BEGIN
-- Including tax
SET @CustomerTaxDisplayTypeId = 0 --now 0
END
ELSE
BEGIN
-- Excluding tax
SET @CustomerTaxDisplayTypeId = 10 --now 10
END
SET IDENTITY_INSERT [Order] ON
INSERT INTO [Order] ([Id], [OrderGuid], [CustomerId], [OrderStatusId], [ShippingStatusId], [PaymentStatusId], [PaymentMethodSystemName], [CustomerCurrencyCode], [CurrencyRate], [CustomerTaxDisplayTypeId], [VatNumber], [OrderSubtotalInclTax], [OrderSubtotalExclTax], [OrderSubTotalDiscountInclTax], [OrderSubTotalDiscountExclTax], [OrderShippingInclTax], [OrderShippingExclTax], [PaymentMethodAdditionalFeeInclTax], [PaymentMethodAdditionalFeeExclTax], [TaxRates], [OrderTax], [OrderDiscount], [OrderTotal], [RefundedAmount], [CheckoutAttributeDescription], [CheckoutAttributesXml], [CustomerLanguageId], [AffiliateId], [CustomerIp], [AllowStoringCreditCardNumber], [CardType], [CardName], [CardNumber], [MaskedCreditCardNumber], [CardCvv2], [CardExpirationMonth], [CardExpirationYear], [AuthorizationTransactionId], [AuthorizationTransactionCode], [AuthorizationTransactionResult], [CaptureTransactionId], [CaptureTransactionResult], [SubscriptionTransactionId], [PurchaseOrderNumber], [PaidDateUtc], [ShippingMethod], [ShippingRateComputationMethodSystemName], [ShippedDateUtc], [DeliveryDateUtc], [OrderWeight], [TrackingNumber], [Deleted], [CreatedOnUtc], [BillingAddressId], [ShippingAddressId])
SELECT [OrderId], [OrderGuid], [CustomerId], [OrderStatusId], [ShippingStatusId], [PaymentStatusId], @PaymentMethodSystemName, [CustomerCurrencyCode], @CurrencyRate, @CustomerTaxDisplayTypeId, [VatNumber], [OrderSubtotalInclTax], [OrderSubtotalExclTax], [OrderSubTotalDiscountInclTax], [OrderSubTotalDiscountExclTax], [OrderShippingInclTax], [OrderShippingExclTax], [PaymentMethodAdditionalFeeInclTax], [PaymentMethodAdditionalFeeExclTax], [TaxRates], [OrderTax], [OrderDiscount], [OrderTotal], [RefundedAmount], [CheckoutAttributeDescription], cast([CheckoutAttributesXml] as nvarchar(MAX)), COALESCE((SELECT [NewId] FROM #IDs WHERE [EntityName]=N'Language' and [OriginalId]=[CustomerLanguageId]), 0), (SELECT CASE WHEN [AffiliateId]=0 THEN NULL ELSE [AffiliateId] END), [CustomerIp], [AllowStoringCreditCardNumber], [CardType], [CardName], [CardNumber], [MaskedCreditCardNumber], [CardCvv2], [CardExpirationMonth], [CardExpirationYear], [AuthorizationTransactionId], [AuthorizationTransactionCode], [AuthorizationTransactionResult], [CaptureTransactionId], [CaptureTransactionResult], [SubscriptionTransactionId], [PurchaseOrderNumber], [PaidDate], [ShippingMethod], @ShippingRateComputationMethodSystemName, [ShippedDate], [DeliveryDate], [OrderWeight], [TrackingNumber], [Deleted], [CreatedOn], @BillingAddressId, @ShippingAddressId
FROM [Nop_Order]
WHERE OrderId = @OriginalOrderId
SET IDENTITY_INSERT [Order] OFF
--fetch next identifier
FETCH NEXT FROM cur_originalorder INTO @OriginalOrderId
END
CLOSE cur_originalorder
DEALLOCATE cur_originalorder
GO
--ORDER PRODUCT VARIANTS
PRINT 'moving order product variants'
DECLARE @OriginalOrderProductVariantId int
DECLARE cur_originalorderproductvariant CURSOR FOR
SELECT OrderProductVariantId
FROM [Nop_OrderProductVariant]
ORDER BY [OrderProductVariantId]
OPEN cur_originalorderproductvariant
FETCH NEXT FROM cur_originalorderproductvariant INTO @OriginalOrderProductVariantId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving order product variant. ID ' + cast(@OriginalOrderProductVariantId as nvarchar(10))
INSERT INTO [OrderProductVariant] ([OrderProductVariantGuid], [OrderId], [ProductVariantId], [Quantity], [UnitPriceInclTax], [UnitPriceExclTax], [PriceInclTax], [PriceExclTax], [DiscountAmountInclTax], [DiscountAmountExclTax], [AttributeDescription], [AttributesXml], [DownloadCount], [IsDownloadActivated], [LicenseDownloadId])
SELECT [OrderProductVariantGuid], [OrderId], [ProductVariantId], [Quantity], [UnitPriceInclTax], [UnitPriceExclTax], [PriceInclTax], [PriceExclTax], [DiscountAmountInclTax], [DiscountAmountExclTax], [AttributeDescription], cast([AttributesXml] as nvarchar(MAX)), [DownloadCount], [IsDownloadActivated], (SELECT CASE WHEN [LicenseDownloadId]=0 THEN NULL ELSE [LicenseDownloadId] END)
FROM [Nop_OrderProductVariant]
WHERE OrderProductVariantId = @OriginalOrderProductVariantId
--new ID
DECLARE @NewOrderProductVariantId int
SET @NewOrderProductVariantId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalOrderProductVariantId, @NewOrderProductVariantId, N'OrderProductVariant')
--fetch next identifier
FETCH NEXT FROM cur_originalorderproductvariant INTO @OriginalOrderProductVariantId
END
CLOSE cur_originalorderproductvariant
DEALLOCATE cur_originalorderproductvariant
GO
--ORDER NOTES
PRINT 'moving order notes'
DECLARE @OriginalOrderNoteId int
DECLARE cur_originalordernote CURSOR FOR
SELECT OrderNoteId
FROM [Nop_OrderNote]
ORDER BY [OrderNoteId]
OPEN cur_originalordernote
FETCH NEXT FROM cur_originalordernote INTO @OriginalOrderNoteId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving order note. ID ' + cast(@OriginalOrderNoteId as nvarchar(10))
INSERT INTO [OrderNote] ([OrderId], [Note], [DisplayToCustomer], [CreatedOnUtc])
SELECT [OrderId], [Note], [DisplayToCustomer], [CreatedOn]
FROM [Nop_OrderNote]
WHERE OrderNoteId = @OriginalOrderNoteId
--fetch next identifier
FETCH NEXT FROM cur_originalordernote INTO @OriginalOrderNoteId
END
CLOSE cur_originalordernote
DEALLOCATE cur_originalordernote
GO
--DISCOUNT USAGE HISTORY
PRINT 'moving discount usage history'
DECLARE @OriginalDiscountUsageHistoryId int
DECLARE cur_originaldiscountusagehistory CURSOR FOR
SELECT DiscountUsageHistoryId
FROM [Nop_DiscountUsageHistory]
ORDER BY [DiscountUsageHistoryId]
OPEN cur_originaldiscountusagehistory
FETCH NEXT FROM cur_originaldiscountusagehistory INTO @OriginalDiscountUsageHistoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving discount usage history. ID ' + cast(@OriginalDiscountUsageHistoryId as nvarchar(10))
INSERT INTO [DiscountUsageHistory] ([DiscountId], [OrderId], [CreatedOnUtc])
SELECT [DiscountId], [OrderId], [CreatedOn]
FROM [Nop_DiscountUsageHistory]
WHERE DiscountUsageHistoryId = @OriginalDiscountUsageHistoryId
--fetch next identifier
FETCH NEXT FROM cur_originaldiscountusagehistory INTO @OriginalDiscountUsageHistoryId
END
CLOSE cur_originaldiscountusagehistory
DEALLOCATE cur_originaldiscountusagehistory
GO
--GIFT CARDS
PRINT 'moving gift cards'
DECLARE @OriginalGiftCardId int
DECLARE cur_originalgiftcard CURSOR FOR
SELECT GiftCardId
FROM [Nop_GiftCard]
ORDER BY [GiftCardId]
OPEN cur_originalgiftcard
FETCH NEXT FROM cur_originalgiftcard INTO @OriginalGiftCardId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving gift card. ID ' + cast(@OriginalGiftCardId as nvarchar(10))
DECLARE @GiftCardTypeId int
SET @GiftCardTypeId = null -- clear cache (variable scope)
SELECT @GiftCardTypeId = pv.[GiftCardType]
FROM [Nop_OrderProductVariant] opv
INNER JOIN [Nop_ProductVariant] pv ON opv.ProductVariantId=pv.ProductVariantId
INNER JOIN [Nop_GiftCard] gc ON gc.PurchasedOrderProductVariantID = opv.OrderProductVariantID
WHERE gc.GiftCardId = @OriginalGiftCardId
INSERT INTO [GiftCard] ([PurchasedWithOrderProductVariantId], [GiftCardTypeId], [Amount], [IsGiftCardActivated], [GiftCardCouponCode], [RecipientName], [RecipientEmail], [SenderName], [SenderEmail], [Message], [IsRecipientNotified], [CreatedOnUtc])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'OrderProductVariant' and [OriginalId]=gc.[PurchasedOrderProductVariantID]), @GiftCardTypeId, gc.[Amount], gc.[IsGiftCardActivated], gc.[GiftCardCouponCode], gc.[RecipientName], gc.[RecipientEmail], gc.[SenderName], gc.[SenderEmail], gc.[Message], gc.[IsRecipientNotified], gc.[CreatedOn]
FROM [Nop_GiftCard] gc
WHERE GiftCardId = @OriginalGiftCardId
--new ID
DECLARE @NewGiftCardId int
SET @NewGiftCardId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalGiftCardId, @NewGiftCardId, N'GiftCard')
--fetch next identifier
FETCH NEXT FROM cur_originalgiftcard INTO @OriginalGiftCardId
END
CLOSE cur_originalgiftcard
DEALLOCATE cur_originalgiftcard
GO
--GIFT CARD USAGE HISTORY
PRINT 'moving gift card usage history'
DECLARE @OriginalGiftCardUsageHistoryId int
DECLARE cur_originalgiftcardusagehistory CURSOR FOR
SELECT GiftCardUsageHistoryId
FROM [Nop_GiftCardUsageHistory]
ORDER BY [GiftCardUsageHistoryId]
OPEN cur_originalgiftcardusagehistory
FETCH NEXT FROM cur_originalgiftcardusagehistory INTO @OriginalGiftCardUsageHistoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving gift card usage history. ID ' + cast(@OriginalGiftCardUsageHistoryId as nvarchar(10))
INSERT INTO [GiftCardUsageHistory] ([GiftCardId], [UsedWithOrderId], [UsedValue], [CreatedOnUtc])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'GiftCard' and [OriginalId]=[GiftCardID]), [OrderId], [UsedValue], [CreatedOn]
FROM [Nop_GiftCardUsageHistory]
WHERE GiftCardUsageHistoryId = @OriginalGiftCardUsageHistoryId
--fetch next identifier
FETCH NEXT FROM cur_originalgiftcardusagehistory INTO @OriginalGiftCardUsageHistoryId
END
CLOSE cur_originalgiftcardusagehistory
DEALLOCATE cur_originalgiftcardusagehistory
GO
--RECURRING PAYMENTS
PRINT 'moving recurring payments'
DECLARE @OriginalRecurringPaymentId int
DECLARE cur_originalrecurringpayment CURSOR FOR
SELECT RecurringPaymentId
FROM [Nop_RecurringPayment]
ORDER BY [RecurringPaymentId]
OPEN cur_originalrecurringpayment
FETCH NEXT FROM cur_originalrecurringpayment INTO @OriginalRecurringPaymentId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving recurring payment. ID ' + cast(@OriginalRecurringPaymentId as nvarchar(10))
INSERT INTO [RecurringPayment] ([CycleLength], [CyclePeriodId], [TotalCycles], [StartDateUtc], [IsActive], [Deleted], [CreatedOnUtc], [InitialOrderId])
SELECT [CycleLength], [CyclePeriod], [TotalCycles], [StartDate], [IsActive], [Deleted], [CreatedOn], [InitialOrderId]
FROM [Nop_RecurringPayment]
WHERE RecurringPaymentId = @OriginalRecurringPaymentId
--new ID
DECLARE @NewRecurringPaymentId int
SET @NewRecurringPaymentId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalRecurringPaymentId, @NewRecurringPaymentId, N'RecurringPayment')
--fetch next identifier
FETCH NEXT FROM cur_originalrecurringpayment INTO @OriginalRecurringPaymentId
END
CLOSE cur_originalrecurringpayment
DEALLOCATE cur_originalrecurringpayment
GO
--RECURRING PAYMENT USAGE HISTORY
PRINT 'moving recurring payment history'
DECLARE @OriginalRecurringPaymentHistoryId int
DECLARE cur_originalrecurringpaymenthistory CURSOR FOR
SELECT RecurringPaymentHistoryId
FROM [Nop_RecurringPaymentHistory]
ORDER BY [RecurringPaymentHistoryId]
OPEN cur_originalrecurringpaymenthistory
FETCH NEXT FROM cur_originalrecurringpaymenthistory INTO @OriginalRecurringPaymentHistoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving recurring payment history. ID ' + cast(@OriginalRecurringPaymentHistoryId as nvarchar(10))
INSERT INTO [RecurringPaymentHistory] ([RecurringPaymentId], [OrderId], [CreatedOnUtc])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'RecurringPayment' and [OriginalId]=[RecurringPaymentId]), [OrderId], [CreatedOn]
FROM [Nop_RecurringPaymentHistory]
WHERE RecurringPaymentHistoryId = @OriginalRecurringPaymentHistoryId
--fetch next identifier
FETCH NEXT FROM cur_originalrecurringpaymenthistory INTO @OriginalRecurringPaymentHistoryId
END
CLOSE cur_originalrecurringpaymenthistory
DEALLOCATE cur_originalrecurringpaymenthistory
GO
--RETURN REQUESTS
PRINT 'moving return requests'
DECLARE @OriginalReturnRequestId int
DECLARE cur_originalreturnrequest CURSOR FOR
SELECT ReturnRequestId
FROM [Nop_ReturnRequest]
ORDER BY [ReturnRequestId]
OPEN cur_originalreturnrequest
FETCH NEXT FROM cur_originalreturnrequest INTO @OriginalReturnRequestId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving return request. ID ' + cast(@OriginalReturnRequestId as nvarchar(10))
INSERT INTO [ReturnRequest] ([OrderProductVariantId], [CustomerId], [Quantity], [ReasonForReturn], [RequestedAction], [CustomerComments], [StaffNotes], [ReturnRequestStatusId], [CreatedOnUtc], [UpdatedOnUtc])
SELECT (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'OrderProductVariant' and [OriginalId]=[OrderProductVariantId]), [CustomerId], [Quantity], [ReasonForReturn], [RequestedAction], [CustomerComments], [StaffNotes], [ReturnStatusId], [CreatedOn], [UpdatedOn]
FROM [Nop_ReturnRequest]
WHERE ReturnRequestId = @OriginalReturnRequestId
--fetch next identifier
FETCH NEXT FROM cur_originalreturnrequest INTO @OriginalReturnRequestId
END
CLOSE cur_originalreturnrequest
DEALLOCATE cur_originalreturnrequest
GO
--REWARD POINTS HISTORY
PRINT 'moving reward points history'
DECLARE @OriginalRewardPointsHistoryId int
DECLARE cur_originalrewardpointshistory CURSOR FOR
SELECT RewardPointsHistoryId
FROM [Nop_RewardPointsHistory]
ORDER BY [RewardPointsHistoryId]
OPEN cur_originalrewardpointshistory
FETCH NEXT FROM cur_originalrewardpointshistory INTO @OriginalRewardPointsHistoryId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving reward points history. ID ' + cast(@OriginalRewardPointsHistoryId as nvarchar(10))
INSERT INTO [RewardPointsHistory] ([CustomerId], [Points], [PointsBalance], [UsedAmount], [Message], [CreatedOnUtc], [UsedWithOrder_Id])
SELECT [CustomerId], [Points], [PointsBalance], [UsedAmount], [Message], [CreatedOn], (SELECT CASE WHEN [OrderId]=0 THEN NULL ELSE [OrderId] END)
FROM [Nop_RewardPointsHistory]
WHERE RewardPointsHistoryId = @OriginalRewardPointsHistoryId
--fetch next identifier
FETCH NEXT FROM cur_originalrewardpointshistory INTO @OriginalRewardPointsHistoryId
END
CLOSE cur_originalrewardpointshistory
DEALLOCATE cur_originalrewardpointshistory
GO
--PRODUCT REVIEWS
PRINT 'moving product reviews'
DECLARE @OriginalProductReviewId int
DECLARE cur_originalproductreview CURSOR FOR
SELECT ProductReviewId
FROM [Nop_ProductReview]
ORDER BY [ProductReviewId]
OPEN cur_originalproductreview
FETCH NEXT FROM cur_originalproductreview INTO @OriginalProductReviewId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product review. ID ' + cast(@OriginalProductReviewId as nvarchar(10))
INSERT INTO [CustomerContent] ([CustomerId], [IpAddress], [IsApproved], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [CustomerId], [IpAddress], [IsApproved], [CreatedOn], [CreatedOn]
FROM [Nop_ProductReview]
WHERE ProductReviewId = @OriginalProductReviewId
--new ID
DECLARE @NewProductReviewId int
SET @NewProductReviewId = @@IDENTITY
INSERT INTO #IDs ([OriginalId], [NewId], [EntityName])
VALUES (@OriginalProductReviewId, @NewProductReviewId, N'ProductReview')
INSERT INTO [ProductReview] ([Id], [ProductId], [Title], [ReviewText], [Rating], [HelpfulYesTotal], [HelpfulNoTotal])
SELECT @NewProductReviewId, [ProductId], [Title], [ReviewText], [Rating], [HelpfulYesTotal], [HelpfulNoTotal]
FROM [Nop_ProductReview]
WHERE ProductReviewId = @OriginalProductReviewId
--fetch next identifier
FETCH NEXT FROM cur_originalproductreview INTO @OriginalProductReviewId
END
CLOSE cur_originalproductreview
DEALLOCATE cur_originalproductreview
GO
--PRODUCT REVIEW HELPFULNESS
PRINT 'moving product review helpfulness'
DECLARE @OriginalProductReviewHelpfulnessId int
DECLARE cur_originalproductreviewhelpfulness CURSOR FOR
SELECT ProductReviewHelpfulnessId
FROM [Nop_ProductReviewHelpfulness]
ORDER BY [ProductReviewHelpfulnessId]
OPEN cur_originalproductreviewhelpfulness
FETCH NEXT FROM cur_originalproductreviewhelpfulness INTO @OriginalProductReviewHelpfulnessId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'moving product review helpfulness. ID ' + cast(@OriginalProductReviewHelpfulnessId as nvarchar(10))
INSERT INTO [CustomerContent] ([CustomerId], [IpAddress], [IsApproved], [CreatedOnUtc], [UpdatedOnUtc])
SELECT [CustomerId], null, 1 /*approved*/, getutcdate(), getutcdate()
FROM [Nop_ProductReviewHelpfulness]
WHERE ProductReviewHelpfulnessId = @OriginalProductReviewHelpfulnessId
--new ID
DECLARE @NewProductReviewHelpfulnessId int
SET @NewProductReviewHelpfulnessId = @@IDENTITY
INSERT INTO [ProductReviewHelpfulness] ([Id], [ProductReviewId], [WasHelpful])
SELECT @NewProductReviewHelpfulnessId, (SELECT [NewId] FROM #IDs WHERE [EntityName]=N'ProductReview' and [OriginalId]=[ProductReviewID]), [WasHelpful]
FROM [Nop_ProductReviewHelpfulness]
WHERE ProductReviewHelpfulnessId = @OriginalProductReviewHelpfulnessId
--fetch next identifier
FETCH NEXT FROM cur_originalproductreviewhelpfulness INTO @OriginalProductReviewHelpfulnessId
END
CLOSE cur_originalproductreviewhelpfulness
DEALLOCATE cur_originalproductreviewhelpfulness
GO
--UPDATE PRODUCT REVIEW TOTALS
PRINT 'updating product review totals'
DECLARE @OriginalProductId int
DECLARE cur_originalproduct CURSOR FOR
SELECT ProductId
FROM [Nop_Product]
ORDER BY [ProductId]
OPEN cur_originalproduct
FETCH NEXT FROM cur_originalproduct INTO @OriginalProductId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'product review total. ID ' + cast(@OriginalProductId as nvarchar(10))
DECLARE @ApprovedTotalReviews int
SELECT @ApprovedTotalReviews = COUNT(1)
FROM [Nop_ProductReview]
WHERE [ProductId] = @OriginalProductId and [IsApproved]=1
DECLARE @NotApprovedTotalReviews int
SELECT @NotApprovedTotalReviews = COUNT(1)
FROM [Nop_ProductReview]
WHERE [ProductId] = @OriginalProductId and [IsApproved]=0
DECLARE @ApprovedRatingSum int
SELECT @ApprovedRatingSum = SUM(Rating)
FROM [Nop_ProductReview]
WHERE [ProductId] = @OriginalProductId and [IsApproved]=1
IF (@ApprovedRatingSum is null) --ensure it's not null
BEGIN
SET @ApprovedRatingSum = 0
END
DECLARE @NotApprovedRatingSum int
SELECT @NotApprovedRatingSum = SUM(Rating)
FROM [Nop_ProductReview]
WHERE [ProductId] = @OriginalProductId and [IsApproved]=0
IF (@NotApprovedRatingSum is null) --ensure it's not null
BEGIN
SET @NotApprovedRatingSum = 0
END
UPDATE [Product]
SET [ApprovedTotalReviews] = @ApprovedTotalReviews,
[NotApprovedTotalReviews] = @NotApprovedTotalReviews,
[ApprovedRatingSum] = @ApprovedRatingSum,
[NotApprovedRatingSum] = @NotApprovedRatingSum
WHERE [Id]=@OriginalProductId
--fetch next identifier
FETCH NEXT FROM cur_originalproduct INTO @OriginalProductId
END
CLOSE cur_originalproduct
DEALLOCATE cur_originalproduct
GO
--drop temporary table
DROP TABLE #IDs
GO
--drop old tables, store procedures, functions
DROP TABLE [Nop_ACL]
GO
DROP TABLE [Nop_ActivityLog]
GO
DROP TABLE [Nop_ActivityLogType]
GO
DROP TABLE [Nop_BannedIpAddress]
GO
DROP TABLE [Nop_BannedIpNetwork]
GO
DROP TABLE [Nop_BlogComment]
GO
DROP TABLE [Nop_BlogPost]
GO
DROP TABLE [Nop_Campaign]
GO
DROP TABLE [Nop_Category_Discount_Mapping]
GO
DROP TABLE [Nop_CategoryLocalized]
GO
DROP TABLE [Nop_CheckoutAttributeValueLocalized]
GO
DROP TABLE [Nop_CheckoutAttributeValue]
GO
DROP TABLE [Nop_CheckoutAttributeLocalized]
GO
DROP TABLE [Nop_CheckoutAttribute]
GO
DROP TABLE [Nop_CreditCardType]
GO
DROP TABLE [Nop_CrossSellProduct]
GO
DROP TABLE [Nop_Currency]
GO
DROP TABLE [Nop_Customer_CustomerRole_Mapping]
GO
DROP TABLE [Nop_CustomerAction]
GO
DROP TABLE [Nop_CustomerAttribute]
GO
DROP TABLE [Nop_CustomerRole_Discount_Mapping]
GO
DROP TABLE [Nop_CustomerRole_ProductPrice]
GO
DROP TABLE [Nop_DiscountRestriction]
GO
DROP TABLE [Nop_DiscountUsageHistory]
GO
DROP TABLE [Nop_Download]
GO
DROP TABLE [Nop_EmailAccount]
GO
DROP TABLE [Nop_Forums_Subscription]
GO
DROP TABLE [Nop_Forums_PrivateMessage]
GO
DROP TABLE [Nop_GiftCardUsageHistory]
GO
DROP TABLE [Nop_LocaleStringResource]
GO
DROP TABLE [Nop_Log]
GO
DROP TABLE [Nop_ManufacturerLocalized]
GO
DROP TABLE [Nop_MeasureDimension]
GO
DROP TABLE [Nop_MeasureWeight]
GO
DROP TABLE [Nop_MessageTemplateLocalized]
GO
DROP TABLE [Nop_MessageTemplate]
GO
DROP TABLE [Nop_NewsComment]
GO
DROP TABLE [Nop_News]
GO
DROP TABLE [Nop_NewsLetterSubscription]
GO
DROP TABLE [Nop_OrderNote]
GO
DROP TABLE [Nop_PaymentMethod_RestrictedCountries]
GO
DROP TABLE [Nop_PaymentMethod]
GO
DROP TABLE [Nop_PollVotingRecord]
GO
DROP TABLE [Nop_PollAnswer]
GO
DROP TABLE [Nop_Poll]
GO
DROP TABLE [Nop_Product_Category_Mapping]
GO
DROP TABLE [Nop_Product_Manufacturer_Mapping]
GO
DROP TABLE [Nop_Product_SpecificationAttribute_Mapping]
GO
DROP TABLE [Nop_ProductAttributeLocalized]
GO
DROP TABLE [Nop_ProductLocalized]
GO
DROP TABLE [Nop_ProductPicture]
GO
DROP TABLE [Nop_ProductReviewHelpfulness]
GO
DROP TABLE [Nop_ProductReview]
GO
DROP TABLE [Nop_ProductRating]
GO
DROP TABLE [Nop_ProductTag_Product_Mapping]
GO
DROP TABLE [Nop_ProductTag]
GO
DROP TABLE [Nop_ProductVariant_Discount_Mapping]
GO
DROP TABLE [Nop_ProductVariant_Pricelist_Mapping]
GO
DROP TABLE [Nop_ProductVariantAttributeValueLocalized]
GO
DROP TABLE [Nop_ProductVariantAttributeValue]
GO
DROP TABLE [Nop_ProductVariantAttributeCombination]
GO
DROP TABLE [Nop_ProductVariant_ProductAttribute_Mapping]
GO
DROP TABLE [Nop_ProductVariantLocalized]
GO
DROP TABLE [Nop_QBEntity]
GO
DROP TABLE [Nop_QueuedEmail]
GO
DROP TABLE [Nop_RecurringPaymentHistory]
GO
DROP TABLE [Nop_RecurringPayment]
GO
DROP TABLE [Nop_RelatedProduct]
GO
DROP TABLE [Nop_ReturnRequest]
GO
DROP TABLE [Nop_RewardPointsHistory]
GO
DROP TABLE [Nop_SearchLog]
GO
DROP TABLE [Nop_Setting]
GO
DROP TABLE [Nop_ShippingByTotal]
GO
DROP TABLE [Nop_ShippingByWeight]
GO
DROP TABLE [Nop_ShippingByWeightAndCountry]
GO
DROP TABLE [Nop_ShippingMethod_RestrictedCountries]
GO
DROP TABLE [Nop_ShippingMethod]
GO
DROP TABLE [Nop_ShippingRateComputationMethod]
GO
DROP TABLE [Nop_SMSProvider]
GO
DROP TABLE [Nop_SpecificationAttributeOptionLocalized]
GO
DROP TABLE [Nop_SpecificationAttributeOption]
GO
DROP TABLE [Nop_SpecificationAttributeLocalized]
GO
DROP TABLE [Nop_SpecificationAttribute]
GO
DROP TABLE [Nop_StateProvince]
GO
DROP TABLE [Nop_TaxProvider]
GO
DROP TABLE [Nop_TaxRate]
GO
DROP TABLE [Nop_TierPrice]
GO
DROP TABLE [Nop_TopicLocalized]
GO
DROP TABLE [Nop_Topic]
GO
DROP TABLE [Nop_Warehouse]
GO
DROP TABLE [Nop_Manufacturer]
GO
DROP TABLE [Nop_ManufacturerTemplate]
GO
DROP TABLE [Nop_Category]
GO
DROP TABLE [Nop_CategoryTemplate]
GO
DROP TABLE [Nop_ACLPerObject]
GO
DROP TABLE [Nop_Discount]
GO
DROP TABLE [Nop_Affiliate]
GO
DROP TABLE [Nop_Address]
GO
DROP TABLE [Nop_Country]
GO
DROP TABLE [Nop_GiftCard]
GO
DROP TABLE [Nop_Language]
GO
DROP TABLE [Nop_Picture]
GO
DROP TABLE [Nop_ShoppingCartItem]
GO
DROP TABLE [Nop_CustomerSession]
GO
DROP TABLE [Nop_Customer]
GO
DROP TABLE [Nop_CustomerRole]
GO
DROP TABLE [Nop_ProductAttribute]
GO
DROP TABLE [Nop_OrderProductVariant]
GO
DROP TABLE [Nop_Order]
GO
DROP TABLE [Nop_ProductVariant]
GO
DROP TABLE [Nop_Product]
GO
DROP TABLE [Nop_ProductTemplate]
GO
DROP TABLE [Nop_TaxCategory]
GO
DROP TABLE [Nop_Forums_Post]
GO
DROP TABLE [Nop_Forums_Topic]
GO
DROP TABLE [Nop_Forums_Forum]
GO
DROP TABLE [Nop_Forums_Group]
GO
DROP TABLE [Nop_Pricelist]
GO
DROP PROCEDURE [Nop_CustomerBestReport]
GO
DROP PROCEDURE [Nop_CustomerReportByAttributeKey]
GO
DROP PROCEDURE [Nop_LanguagePackExport]
GO
DROP PROCEDURE [Nop_LanguagePackImport]
GO
DROP PROCEDURE [Nop_Maintenance_ReindexTables]
GO
DROP PROCEDURE [Nop_OrderProductVariantReport]
GO
DROP PROCEDURE [Nop_ProductAlsoPurchasedLoadByProductID]
GO
DROP PROCEDURE [Nop_ProductLoadAllPaged]
GO
DROP PROCEDURE [Nop_ProductVariantLoadAll]
GO
DROP PROCEDURE [Nop_SalesBestSellersReport]
GO
DROP PROCEDURE [Nop_SpecificationAttributeOptionFilter_LoadByFilter]
GO
DROP FUNCTION [NOP_splitstring_to_table]
GO
DROP FUNCTION [NOP_getcustomerattributevalue]
GO
DROP FUNCTION [NOP_getnotnullnotempty]
GO