1
我有一個存儲過程調用另一個存儲過程多次使用不同的參數和填充臨時表。手動填充未嵌套的SP調用填充的其他列
--load inactive SKUs
INSERT INTO #tmpSKUs
exec GetAdvancedSkus @editionId
--load retailer specific SKUs
INSERT INTO #tmpSKUs
exec GetAdvancedSkus @editionId, 2, 1
我想要做的是手動填充(硬編碼)的#tmpSKUs表的SKUType列(此列不被填充)每次迭代,使無效的SKU的情況下,將填寫結果並在SKUType列中添加「無效」。我無法修改GetAdvancedSKUs,因爲存儲過程有很多依賴關係。
下面是完整的SP代碼
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
我已經試過了,但執行時間上升顯著VS離開欄爲空白(12秒比5) – pnduke 2013-03-08 18:52:01
@pnduke正在從存儲過程的每次執行返回多少行?這似乎是一個大的增加,我認爲這不是一個大量的數據......但是,如果不能改變存儲過程,我不知道你是否能夠避免增加任何開銷改變結果。平均約有8K行,約爲 – 2013-03-08 18:57:11
。如果是這樣的話,我可能不得不解決手動更新。我希望有一個簡單的方法可以在旅途中做到這一點(隨着數據的填充)。 – pnduke 2013-03-08 20:27:53