2015-11-04 65 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 

正如其他回答者指出的那样,您的专栏并不完全匹配。