2015-11-04 44 views
1

我不知道如果標題書寫正確,但基本上我想達到什麼是我有這個存儲過程數的插入:SQL Server存儲過程,其中將包括基於另一列

CREATE PROCEDURE InsertNewCarouselImage 
    (@sliderid int, 
     @caption varchar(250), 
     @imageUrl varchar(150), 
     @imageOrder int) 
AS 
BEGIN 
    INSERT INTO tblItems(sliderid, caption, imageUrl, imageOrder, isActive) 
    VALUES(@sliderid, @caption, @imageUrl) 
END 
GO 

imageOrder列中,我想爲該sliderid + 1插入最後一個imageOrder的值。所以我需要類似於

SELECT TOP 1 imageOrder 
FROM tblItems 
WHERE sliderid = @sliderid 
ORDER BY imageOrder DESC 

對於我選擇的值,我想增加那個1 + 1並在插入存儲過程中使用它。

是否有可能沒有來自我的應用程序的多個SQL查詢?

感謝

回答

0

我相信你應該能夠做這樣的事情:

INSERT INTO tblItems (sliderid, caption, imageUrl, imageOrder, isActive) 
SELECT TOP 1 @sliderid, @caption, @imageUrl, imageOrder + 1, ???? 
FROM tblItems 
WHERE sliderid = @sliderid 
order by imageOrder desc 

您需要爲isActive指定課程的價值。

0
INSERT INTO tblItems(sliderid, caption, imageUrl, imageOrder, isActive) 
SELECT TOP 1 @sliderid, @caption, imageOrder 
FROM tblItems 
WHERE sliderid = @sliderid 
ORDER BY imageOrder DESC 

正如其他回答者指出的那樣,您的專欄並不完全匹配。