1

I have a stored proc which calls another stored proc a number of times with different parameters and fills a temp table.

--load inactive SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId

--load retailer specific SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId, 2, 1

What I want to do is manually populate (hardcode) the SKUType column (this column is not being filled) of the #tmpSKUs table with each iteration, so that in the case of Inactive SKUs, it'll populate the table with results and add "Inactive" in the SKUType column. I cannot alter GetAdvancedSKUs as that stored proc has many dependencies.

Here's the full SP code

ALTER proc [dbo].[GetSkuTypes]
@editionId as int,
@isbnNum as nvarchar(20)=null,
@upcCode as nvarchar(20)=null,
@productNum as nvarchar(20)=null
as

IF (@editionId > 0)
BEGIN
CREATE TABLE #tmpSKUs
(
    SKUId int,
    ProductNumber varchar(255),
    ISBN varchar(255),
    UPC varchar(255),
    Territory varchar(255),
    Format varchar(255),
    Division varchar(255),
    SourceTag varchar(255),
    PictureFormat varchar(255),
    Retailer varchar(255),
    TextAddDetails nvarchar(3000),
    AddDetails nvarchar(3000),
    PackagingLanguage varchar(255),
    EditionId int,
    BluePrintPublishStatus varchar(255),
    SAPPublishStatus varchar(255),
    SKUType varchar(255)
)

--load inactive SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId

--load national single SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId, 1, 1

--load retailer specific SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId, 2, 1

SELECT * FROM #tmpSKUs


END
4

1 回答 1

0

您可以在插入后手动更新列吗?

--load inactive SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId

UPDATE #tmpSKUs
SET SKUType = 'Inactive'

--load national single SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId, 1, 1

UPDATE #tmpSKUs
SET SKUType = 'National Single'
WHERE SKUType <> 'Inactive'

--load retailer specific SKUs
INSERT INTO #tmpSKUs 
exec GetAdvancedSkus @editionId, 2, 1

UPDATE #tmpSKUs
SET SKUType = 'Retailer Specific'
WHERE SKUType NOT IN ('Inactive', 'National Single')

SELECT * FROM #tmpSKUs
于 2013-03-08T18:15:44.937 回答