導數據

USE [ZhiHuiTongForSpuSplit] GO /***************************************** 從產品資料導入非spu *****************************************/ ALTER PROCEDURE [dbo].[UP_ZhiHuiTong_ItemSKUImport_V5] AS --DELETE FROM dbo.WebsiteCategories --DELETE FROM dbo.PropertyDescriptions --DELETE FROM dbo.PropertyValueDescriptions --DELETE FROM dbo.ItemPropertyDescriptions --DELETE FROM dbo.ItemProperties --DELETE FROM dbo.ItemSKUProperties --DELETE FROM dbo.ItemSKUPropertyDescription --DELETE FROM dbo.PropertyValues --DELETE FROM dbo.Properties --DELETE FROM dbo.ItemDescriptions --DELETE FROM dbo.ItemVendors --DELETE FROM dbo.ItemWarehouses --DELETE FROM dbo.ItemPriceSettings --DELETE FROM dbo.Items --DELETE FROM dbo.ItemBaseInfos --DELETE FROM dbo.ItemImages --DELETE FROM dbo.WebsiteCategories --DELETE FROM dbo.CategoryPropertyTemplateDescriptions --DELETE FROM dbo.CategoryPropertyTemplates --DELETE FROM dbo.Warehouses DECLARE @TotalCount INT = 0 DECLARE @Index INT = 1 DECLARE @CreatedItems TABLE ( Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, ItemId INT NOT NULL, SKU NVARCHAR(32) NOT NULL ) BEGIN TRY BEGIN TRANSACTION DECLARE @WebsiteCategories TABLE ( [Id] [int] IDENTITY(1,1) NOT NULL, [CategoryCode] [nvarchar](32) NOT NULL, [CreationTime] [datetime2](7) NOT NULL, [IsActive] [bit] NOT NULL, [IsDeleted] [bit] NOT NULL, [Name] [nvarchar](64) NOT NULL, [ParentCategoryId] [int] NULL, [Priority] [int] NOT NULL ) DECLARE @SourceTable TABLE ( ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, [SKU] [nvarchar](255) NULL, [SPU] [float] NULL, [採購名稱] [nvarchar](255) NULL, [產品狀態] [nvarchar](255) NULL, [報價] [float] NULL, [侵權原因] [nvarchar](255) NULL, [禁售平臺] [nvarchar](255) NULL, [物流屬性] [float] NULL, [倉別] [nvarchar](255) NULL, [英文標題] [nvarchar](255) NULL, [速賣通英文標題] [nvarchar](255) NULL, [英文描述] [nvarchar](max) NULL, [庫存可用數量] [float] NULL, [長] [float] NULL, [寬] [float] NULL, [高] [float] NULL, [重量(g)] [float] NULL, [打包長] [float] NULL, [打包寬] [float] NULL, [打包高] [float] NULL, [打包重量(g)] [float] NULL, [一級分類] [nvarchar](255) NULL, [二級分類] [nvarchar](255) NULL, [三級分類] [nvarchar](255) NULL, [海關編碼] [nvarchar](255) NULL, [關鍵詞] [nvarchar](255) NULL, [圖片1] [nvarchar](255) NULL, [圖片2] [nvarchar](255) NULL, [圖片3] [nvarchar](255) NULL, [圖片4] [nvarchar](255) NULL, [圖片5] [nvarchar](255) NULL, [圖片6] [nvarchar](255) NULL, [圖片7] [nvarchar](255) NULL, [圖片8] [nvarchar](255) NULL, [圖片9] [nvarchar](255) NULL, [圖片10] [nvarchar](255) NULL, [圖片11] [nvarchar](255) NULL, [圖片12] [nvarchar](255) NULL, [圖片13] [nvarchar](255) NULL, [圖片14] [nvarchar](255) NULL, [圖片15] [nvarchar](255) NULL, [圖片16] [nvarchar](255) NULL, [圖片17] [nvarchar](255) NULL, [圖片18] [nvarchar](255) NULL, [圖片19] [nvarchar](255) NULL, [圖片20] [nvarchar](255) NULL, [圖片21] [nvarchar](255) NULL, [SKUColor] [nvarchar](50) NULL, [SKUSize] [nvarchar](50) NULL ) INSERT INTO @SourceTable ( [SKU] ,[SPU] ,[採購名稱] ,[產品狀態] ,[報價] ,[侵權原因] ,[禁售平臺] ,[物流屬性] ,[倉別] ,[英文標題] ,[速賣通英文標題] ,[英文描述] ,[庫存可用數量] ,[長] ,[寬] ,[高] ,[重量(g)] ,[打包長] ,[打包寬] ,[打包高] ,[打包重量(g)] ,[一級分類] ,[二級分類] ,[三級分類] ,[海關編碼] ,[關鍵詞] ,[圖片1] ,[圖片2] ,[圖片3] ,[圖片4] ,[圖片5] ,[圖片6] ,[圖片7] ,[圖片8] ,[圖片9] ,[圖片10] ,[圖片11] ,[圖片12] ,[圖片13] ,[圖片14] ,[圖片15] ,[圖片16] ,[圖片17] ,[圖片18] ,[圖片19] ,[圖片20] ,[圖片21] ,[SKUColor] ,[SKUSize] ) SELECT A.SKU ,A.[SPU] ,A.[採購名稱] ,[產品狀態] ,[報價] ,[侵權原因] ,[禁售平臺] ,[物流屬性] ,[倉別] ,[英文標題] ,[速賣通英文標題] ,[英文描述] ,[庫存可用數量] ,[長] ,[寬] ,[高] ,[重量(g)] ,[打包長] ,[打包寬] ,[打包高] ,[打包重量(g)] ,[一級分類] ,[二級分類] ,[三級分類] ,[海關編碼] ,[關鍵詞] ,[圖片1] ,[圖片2] ,[圖片3] ,[圖片4] ,[圖片5] ,[圖片6] ,[圖片7] ,[圖片8] ,[圖片9] ,[圖片10] ,[圖片11] ,[圖片12] ,[圖片13] ,[圖片14] ,[圖片15] ,[圖片16] ,[圖片17] ,[圖片18] ,[圖片19] ,[圖片20] ,[圖片21] ,A.[SKUColor] ,A.[SKUSize] FROM sellbillion.[dbo].[產品資料] A WHERE [一級分類] IS NOT NULL AND [二級分類] IS NOT NULL AND [三級分類] IS NOT NULL AND 英文標題 IS NOT NULL AND NOT EXISTS( SELECT TOP 1 1 FROM ZhiHuiTongForSpuSplit.dbo.Items I WITH(NOLOCK) WHERE I.SKU = A.SKU ) IF EXISTS ( SELECT * FROM tempdb.dbo.sysobjects WHERE id = object_id(N'tempdb..#WebsiteCategoryTable') AND TYPE = 'U' ) BEGIN DROP TABLE #WebsiteCategoryTable END CREATE TABLE #WebsiteCategoryTable ( ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, CategoryCode NVARCHAR(32) NOT NULL, ParentCategoryId INT, Name NVARCHAR(64) NOT NULL ) DECLARE @OrgWebsiteCategory TABLE ( ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(64) NOT NULL ) INSERT INTO @OrgWebsiteCategory(Name) ( SELECT DISTINCT [一級分類] FROM @SourceTable WHERE [一級分類] NOT IN( SELECT Name FROM ZhiHuiTongForSpuSplit.[dbo].[WebsiteCategories] WHERE ParentCategoryId IS NULL ) ) SELECT @TotalCount = @@ROWCOUNT SET @Index = 1 DECLARE @TempCategoryCode VARCHAR(20) DECLARE @TempCategoryName NVARCHAR(64) DECLARE @MaxCategoryCode INT SELECT TOP(1)@MaxCategoryCode = CAST(CategoryCode AS INT) FROM ZhiHuiTongForSpuSplit.[dbo].[WebsiteCategories] WHERE ParentCategoryId IS NULL ORDER BY Id DESC SET @MaxCategoryCode = ISNULL(@MaxCategoryCode,0) WHILE @Index <= @TotalCount BEGIN SET @MaxCategoryCode = @MaxCategoryCode + 1 SET @TempCategoryCode = ZhiHuiTongForSpuSplit.dbo.PadLeft(CAST(@MaxCategoryCode AS VARCHAR(10)),'0',2); SELECT TOP(1) @TempCategoryName = Name FROM @OrgWebsiteCategory WHERE ID = @Index INSERT INTO #WebsiteCategoryTable(CategoryCode,Name) VALUES(@TempCategoryCode,@TempCategoryName) SET @Index = @Index + 1 END --INSERT First Level WebsiteCategories INSERT INTO ZhiHuiTongForSpuSplit.dbo.WebsiteCategories ( CategoryCode, Name, DisplayName, Priority, ParentCategoryId, IsActive, IsDeleted, CreationTime ) SELECT CategoryCode, Name, Name, 0, ParentCategoryId, 1, 0, GETDATE() FROM #WebsiteCategoryTable PRINT '一級分類處理完成' --第二級分類處理 TRUNCATE TABLE #WebsiteCategoryTable INSERT INTO #WebsiteCategoryTable(CategoryCode,ParentCategoryId,Name) SELECT A.CategoryCode --一級分類Code ,A.ID ,T.[二級分類] FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories A INNER JOIN( SELECT DISTINCT [二級分類], [一級分類] FROM @SourceTable ) T ON A.Name = T.一級分類 AND LEN(A.CategoryCode) = 2 AND T.[二級分類] NOT IN( SELECT Name FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories WITH(NOLOCK) WHERE ParentCategoryId = ( SELECT TOP(1) Id FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories WITH(NOLOCK) WHERE DisplayName = T.一級分類 ) ) ORDER BY A.CategoryCode SET @TotalCount = @@ROWCOUNT SET @Index = 1 DECLARE @LastCategoryCode NVARCHAR(32)='' DECLARE @BuildCategoryCode NVARCHAR(32) DECLARE @TempParentCategoryID INT SET @TempCategoryCode = '' SET @MaxCategoryCode = 0 WHILE(@Index <= @TotalCount) BEGIN SELECT TOP(1) @TempCategoryCode = CategoryCode, @TempParentCategoryID = ParentCategoryId FROM #WebsiteCategoryTable WHERE ID = @Index IF @LastCategoryCode <> @TempCategoryCode BEGIN SELECT TOP(1) @MaxCategoryCode = CAST(SUBSTRING(CategoryCode, 3, 2) AS INT) FROM ZhiHuiTongForSpuSplit.[dbo].[WebsiteCategories] WHERE ParentCategoryId = @TempParentCategoryID AND LEN(CategoryCode) = 4 --二級 ORDER BY Id DESC SET @MaxCategoryCode = ISNULL(@MaxCategoryCode,0)%1 END SET @MaxCategoryCode = @MaxCategoryCode + 1 SELECT @MaxCategoryCode SET @LastCategoryCode = @TempCategoryCode SET @BuildCategoryCode = CONCAT(@TempCategoryCode,ZhiHuiTongForSpuSplit.dbo.PadLeft(CAST(@MaxCategoryCode AS VARCHAR(10)),'0',2)); UPDATE #WebsiteCategoryTable SET CategoryCode = @BuildCategoryCode WHERE ID = @Index SET @Index = @Index + 1 END INSERT INTO ZhiHuiTongForSpuSplit.dbo.WebsiteCategories ( CategoryCode, Name, DisplayName, Priority, ParentCategoryId, IsActive, IsDeleted, CreationTime ) SELECT CategoryCode, Name, Name, 0, ParentCategoryId, 1, 0, GETDATE() FROM #WebsiteCategoryTable PRINT '二級分類處理完成' --第三級分類處理 TRUNCATE TABLE #WebsiteCategoryTable INSERT INTO #WebsiteCategoryTable(CategoryCode,ParentCategoryId,Name) SELECT A.CategoryCode ,A.ID ,T.[三級分類] FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories A INNER JOIN( SELECT DISTINCT [三級分類], [二級分類], [一級分類] FROM @SourceTable ) T ON A.Name = T.二級分類 AND LEN(A.CategoryCode) = 4 AND A.ParentCategoryId = ( SELECT TOP(1) Id FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories WITH(NOLOCK) WHERE DisplayName = T.一級分類 ) AND T.[三級分類] NOT IN( SELECT Name FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories WITH(NOLOCK) WHERE Name = T.三級分類 AND ParentCategoryID = A.ID ) ORDER BY A.CategoryCode SET @TotalCount = @@ROWCOUNT SET @Index = 1 SET @LastCategoryCode = '' SET @BuildCategoryCode = NULL SET @TempCategoryCode = NULL SET @MaxCategoryCode = 0 SET @TempParentCategoryID = NULL WHILE(@Index <= @TotalCount) BEGIN SELECT TOP(1) @TempCategoryCode = CategoryCode, @TempParentCategoryID = ParentCategoryId FROM #WebsiteCategoryTable WHERE ID = @Index IF @LastCategoryCode <> @TempCategoryCode BEGIN SELECT TOP(1) @MaxCategoryCode = CAST(SUBSTRING(CategoryCode, 5, 2) AS INT) FROM ZhiHuiTongForSpuSplit.[dbo].[WebsiteCategories] WHERE ParentCategoryId = @TempParentCategoryID AND LEN(CategoryCode) = 6 --三級 ORDER BY Id DESC SET @MaxCategoryCode = ISNULL(@MaxCategoryCode,0) END SELECT @MaxCategoryCode SET @MaxCategoryCode = @MaxCategoryCode + 1 SET @LastCategoryCode = @TempCategoryCode SET @BuildCategoryCode = CONCAT(@TempCategoryCode,ZhiHuiTongForSpuSplit.dbo.PadLeft(CAST(@MaxCategoryCode AS VARCHAR(10)),'0',2)); UPDATE #WebsiteCategoryTable SET CategoryCode = @BuildCategoryCode WHERE ID = @Index SET @Index = @Index + 1 END INSERT INTO ZhiHuiTongForSpuSplit.dbo.WebsiteCategories ( CategoryCode, Name, DisplayName, Priority, ParentCategoryId, IsActive, IsDeleted, CreationTime ) SELECT CategoryCode, Name, Name, 0, ParentCategoryId, 1, 0, GETDATE() FROM #WebsiteCategoryTable PRINT '三級分類處理完成' DECLARE @AllCategories TABLE ( CategoryId INT NOT NULL, CategoryCode NVARCHAR(32) NOT NULL, ThirdCategoryName NVARCHAR(64) NOT NULL, SecondCategoryName NVARCHAR(64) NOT NULL, FirstCategoryName NVARCHAR(64) NOT NULL ) ;WITH cte_child(id,CategoryCode,Name,ParentCategoryID,level) AS (     SELECT id,CategoryCode,name,parentcategoryId,0 as level     FROM dbo.websitecategories WITH(NOLOCK)     WHERE parentCategoryID IS NULL     UNION ALL     SELECT a.id,a.CategoryCode,a.name,a.parentcategoryId,b.level+1     FROM dbo.websitecategories a     INNER JOIN cte_child b     ON a.parentCategoryID = b.id ) INSERT INTO @AllCategories ( CategoryId, CategoryCode, ThirdCategoryName, SecondCategoryName, FirstCategoryName ) SELECT c.Id AS CategoryId, c.CategoryCode, c.Name AS ThirdCategoryName, B.Name AS SecondCategoryName, a.Name AS FirstCategoryName FROM cte_child a INNER JOIN cte_child b ON a.Id = b.ParentCategoryID INNER JOIN cte_child c ON b.Id = C.ParentCategoryID DECLARE @AdminUserID BIGINT DECLARE @BrandID INT SELECT TOP(1) @AdminUserID = ID FROM ZhiHuiTongForSpuSplit.dbo.Users SELECT TOP(1) @BrandID = Id FROM ZhiHuiTongForSpuSplit.dbo.Brands WITH(NOLOCK) INSERT INTO dbo.Items ( SKU, CustomerSKU, Title, Image, ItemTotalCount, IsActive, ActiveTime, ActiveUserId, BrandId, WebsiteCategoryCode, HasBattery, BatteryType, BatteryInstallType, ItemActivityType, ItemImitationType, QualityInspectionPercent, QualityInspectionStandard, ProductCertification, PurchaserId, DeveloperId, ProductManagerId, ImageManagerId, ProductManagerVendorId, ItemOwnerType, Manufacturer, ItemApproveStatus, TenantId, IsDeleted, CreationTime, CreatorUserId ) OUTPUT INSERTED.Id, INSERTED.SKU INTO @CreatedItems(ItemId,SKU) SELECT SKU, SUBSTRING(REPLACE(CONVERT(VARCHAR(38),NEWID()),'-',''),1,16), SUBSTRING(英文標題,1,256), 圖片1, 庫存可用數量, 1, GETDATE(), @AdminUserID, @BrandID, (SELECT TOP(1) CategoryCode FROM @AllCategories WHERE FirstCategoryName = 一級分類 AND SecondCategoryName = 二級分類 AND ThirdCategoryName = 三級分類), 0, NULL, NULL, 0, 0, 0.9, 'ISO-9001', 'ISO-9001', @AdminUserID, @AdminUserID, @AdminUserID, @AdminUserID, NULL, 0, NULL, 0, 1, 0, GETDATE(), @AdminUserID FROM @SourceTable --Init Description DECLARE @Indate DATETIME = GETDATE() INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemDescriptions ( ItemId, LanguageCode, Title, SubTitle, Tags, Detail, MobileDetail, CreationTime, IsDeleted, TenantId ) SELECT DISTINCT B.ItemId, 'zh-Hans', SUBSTRING(A.英文標題,1,256), --SUBSTRING(A.英文標題,1,256), A.採購名稱, SUBSTRING(A.關鍵詞,1,256), A.英文描述, SUBSTRING(A.英文描述,1,1024), @Indate, 0, 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU PRINT 'Description處理完成' --ItemImages INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemImages ( ItemId, ImagePath, Priority, CreationTime, IsDeleted, IsPrimary ) SELECT DISTINCT A.ID, IMG.圖片, 0, @Indate, 0, CASE WHEN IMG.Series = '圖片1' AND NOT EXISTS( SELECT TOP 1 1 FROM ZhiHuiTongForSpuSplit.dbo.ItemImages WHERE IsPrimary=1 AND ItemId = A.ItemID ) THEN 1 ELSE 0 END FROM @CreatedItems A INNER JOIN ( SELECT 三級分類,SKU,SPU,圖片=value,Series=attribute FROM (SELECT * FROM @SourceTable)a UNPIVOT ( value FOR attribute IN( 圖片1, 圖片2,圖片3,圖片4,圖片5) ) AS UPV ) IMG ON IMG.SKU = A.SKU WHERE IMG.圖片 IS NOT NULL PRINT 'IMage處理完成' INSERT INTO dbo.ItemCustoms ( ItemId, CustomsCode, CustomsMaterial, CustomsLength, CustomsWidth, CustomsHeight, CustomsPackagePieces, CustomsNetWeight, TenantId, IsDeleted, CreatorUserId, CreationTime ) SELECT B.ItemId, A.海關編碼, '金屬混合/織物', A.打包長, A.打包寬, A.打包高, 10, A.[打包重量(g)], 1, 0, @AdminUserId, GETDATE() FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU PRINT 'ItemCustoms處理完成' INSERT INTO dbo.ItemDimensions ( ItemId, Length, Width, Height, PackageLength, PackageWidth, PackageHeight, NetWeight, GrossWeight, PackageWeight, TenantId, CreatorUserId, CreationTime, IsDeleted ) SELECT B.ItemId, A.長, A.寬, A.高, A.打包長, A.打包寬, A.打包高, A.[重量(g)], A.[重量(g)]*1.1, A.[打包重量(g)], 1, @AdminUserId, GETDATE(), 0 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU PRINT 'ItemDimensions處理完成' --Init倉庫 DECLARE @WarehouseTempTable TABLE ( ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY, WarehouseName NVARCHAR(32) NOT NULL ) INSERT INTO @WarehouseTempTable(WarehouseName) SELECT DISTINCT 倉別 FROM @SourceTable WHERE 倉別 IS NOT NULL AND 倉別 <> '' AND 倉別 NOT IN( SELECT Name FROM ZhiHuiTongForSpuSplit.dbo.Warehouses WITH(NOLOCK) ) SET @TotalCount = @@ROWCOUNT SET @Index = 1 DECLARE @WarehouseCode VARCHAR(10) DECLARE @WarehouseName NVARCHAR(32) DECLARE @MaxWarehouseCode INT SELECT TOP(1) @MaxWarehouseCode = CAST(Code AS INT) FROM ZhiHuiTongForSpuSplit.dbo.Warehouses WITH(NOLOCK) ORDER BY ID DESC SET @MaxWarehouseCode = ISNULL(@MaxWarehouseCode,0) WHILE @Index <= @TotalCount BEGIN SET @MaxWarehouseCode = @MaxWarehouseCode + 1 SET @WarehouseCode = ZhiHuiTongForSpuSplit.dbo.PadLeft(CAST(@MaxWarehouseCode AS VARCHAR(10)),'0',4) SELECT TOP(1) @WarehouseName = WarehouseName FROM @WarehouseTempTable WHERE ID = @Index INSERT INTO ZhiHuiTongForSpuSplit.dbo.Warehouses ( Name, DisplayName, WarehouseType, IsDeleted, IsVirtual, CreationTime, Code, CountryCode, TenantId ) SELECT @WarehouseName, @WarehouseName, 0, 0, 0, GETDATE(), @WarehouseCode, 'CN', 1 SET @Index = @Index + 1 END PRINT '倉庫處理完成' INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemWarehouses ( WarehouseId, ItemId, ItemCount, IsDeleted, TenantId, CreationTime ) SELECT C.ID, B.ItemId, A.庫存可用數量, 0, 1, GETDATE() FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU INNER JOIN ZhiHuiTongForSpuSplit.dbo.Warehouses C ON A.倉別 = C.Name PRINT '商品倉庫庫存處理完成' INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemVendors ( VendorId, ItemId, CreationTime, IsDefault, TenantId, IsDeleted ) SELECT (SELECT TOP(1) ID FROM ZhiHuiTongForSpuSplit.dbo.Vendors), B.ItemID, GETDATE(), 1, 1, 0 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU PRINT '供應商處理完成' --ItemPriceSetting INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemPriceSettings ( ItemId, Cost, Price, OriginalPrice, CurrencyCode, CreationTime, IsDeleted, TenantId ) SELECT B.ItemId, A.報價, A.報價, A.報價, 'RMB', GETDATE(), 0, 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU --Property DECLARE @TempPropertyId INT SELECT TOP(1) @TempPropertyId = Id FROM ZhiHuiTongForSpuSplit.dbo.Properties WITH(NOLOCK) WHERE PropertyCode = 'SKUSize' IF @TempPropertyId IS NULL BEGIN INSERT INTO ZhiHuiTongForSpuSplit.dbo.Properties ( PropertyCode, IsDeleted, CreationTime ) VALUES('SKUSize',0,GETDATE()) INSERT INTO ZhiHuiTongForSpuSplit.dbo.PropertyDescriptions ( PropertyId, LanguageCode, DisplayName, IsDeleted, CreationTime ) SELECT ID, 'zh-Hans', '尺寸', 0, GETDATE() FROM ZhiHuiTongForSpuSplit.dbo.Properties WHERE PropertyCode IN('SKUSize') END SET @TempPropertyId = NULL SELECT TOP(1) @TempPropertyId = Id FROM ZhiHuiTongForSpuSplit.dbo.Properties WITH(NOLOCK) WHERE PropertyCode = 'SKUColor' IF @TempPropertyId IS NULL BEGIN INSERT INTO ZhiHuiTongForSpuSplit.dbo.Properties ( PropertyCode, IsDeleted, CreationTime ) VALUES('SKUColor',0,GETDATE()) INSERT INTO ZhiHuiTongForSpuSplit.dbo.PropertyDescriptions ( PropertyId, LanguageCode, DisplayName, IsDeleted, CreationTime ) SELECT ID, 'zh-Hans', '顏色', 0, GETDATE() FROM ZhiHuiTongForSpuSplit.dbo.Properties WHERE PropertyCode IN('SKUColor') END --ItemProperty INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemProperties ( ItemId, PropertyId, PropertyValueId, PropertyDisplayType, IsDeleted, Priority, CreationTime, TenantId ) SELECT B.ItemId, (SELECT TOP 1 Id FROM dbo.Properties WITH(NOLOCK) WHERE PropertyCode = 'SKUSize'), NULL, 0, 0, 0, GETDATE(), 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU WHERE A.SKUSize IS NOT NULL INSERT INTO ZhiHuiTongForSpuSplit.dbo.ItemProperties ( ItemId, PropertyId, PropertyValueId, PropertyDisplayType, IsDeleted, Priority, CreationTime, TenantId ) SELECT B.ItemId, (SELECT TOP 1 Id FROM dbo.Properties WITH(NOLOCK) WHERE PropertyCode = 'SKUColor'), NULL, 0, 0, 0, GETDATE(), 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU WHERE A.SKUColor IS NOT NULL INSERT INTO dbo.ItemPropertyDescriptions ( ItemPropertyId, UserInputedValue, IsDeleted, LanguageCode, CreationTime, TenantId ) SELECT C.Id, A.SKUSize, 0, 'zh-Hans', @InDate, 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU INNER JOIN dbo.ItemProperties C WITH(NOLOCK) ON C.ItemId = B.Id INNER JOIN dbo.Properties D WITH(NOLOCK) ON C.PropertyId = D.Id WHERE A.SKUSize IS NOT NULL AND D.PropertyCode = 'SKUSize' INSERT INTO dbo.ItemPropertyDescriptions ( ItemPropertyId, UserInputedValue, IsDeleted, LanguageCode, CreationTime, TenantId ) SELECT C.Id, A.SKUColor, 0, 'zh-Hans', @InDate, 1 FROM @SourceTable A INNER JOIN @CreatedItems B ON A.SKU = B.SKU INNER JOIN dbo.ItemProperties C WITH(NOLOCK) ON C.ItemId = B.Id INNER JOIN dbo.Properties D WITH(NOLOCK) ON C.PropertyId = D.Id WHERE A.SKUColor IS NOT NULL AND D.PropertyCode = 'SKUColor' INSERT INTO ZhiHuiTongForSpuSplit.dbo.CategoryPropertyTemplates ( WebSiteCategoryId, PropertyId, PropertyType, PropertyDisplayType, IsSKUProperty, IsRequired, IsAllowUserInputed, CreationTime, Priority, IsInSearch, IsDeleted ) SELECT B.ID, C.ID, 0, 0, 1, 1, 1, GETDATE(), 0, 1, 0 FROM ZhiHuiTongForSpuSplit.dbo.WebsiteCategories B WITH(NOLOCK) CROSS APPLY ZhiHuiTongForSpuSplit.dbo.Properties C WHERE C.PropertyCode IN('SKUColor','SKUSize') AND B.ID NOT IN( SELECT WebSiteCategoryId FROM ZhiHuiTongForSpuSplit.dbo.CategoryPropertyTemplates WITH(NOLOCK) ) COMMIT TRANSACTION END TRY BEGIN CATCH SELECT ERROR_Message() ROLLBACK TRANSACTION END CATCH
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章