--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