不知道这个是否是你想要的。--> 测试数据:[tb] IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb] GO CREATE TABLE [tb]([id] INT,[name] INT) INSERT [tb] SELECT 1,89 UNION ALL SELECT 2,90 --------------开始查询--------------------------SELECT ROW_NUMBER() OVER(ORDER BY id desc),[name] FROM [tb]
额,咱俩谁的效率更高呀 ALTER PROCEDURE [dbo].[spAdjustOrder] @ItemsOrder INT, @increment INT -- -往前排 +往后排 AS DECLARE @TagetPosition INT; SELECT @TagetPosition = @ItemsOrder + @increment; UPDATE GZ_XMB SET DISP_ORDER = 888 WHERE DISP_ORDER = @ItemsOrder; UPDATE GZ_XMB SET DISP_ORDER = @ItemsOrder WHERE DISP_ORDER = @TagetPosition; UPDATE GZ_XMB SET DISP_ORDER = @TagetPosition WHERE DISP_ORDER = 888;
update
-------------------废话分割线----
紧跟嫂子。
还有简便的方法嘛?
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] INT,[name] INT)
INSERT [tb]
SELECT 1,89 UNION ALL
SELECT 2,90
--------------开始查询--------------------------SELECT ROW_NUMBER() OVER(ORDER BY id desc),[name] FROM [tb]
ALTER PROCEDURE [dbo].[spAdjustOrder]
@ItemsOrder INT,
@increment INT -- -往前排 +往后排
AS
DECLARE @TagetPosition INT;
SELECT @TagetPosition = @ItemsOrder + @increment;
UPDATE GZ_XMB
SET DISP_ORDER = 888 WHERE DISP_ORDER = @ItemsOrder;
UPDATE GZ_XMB
SET DISP_ORDER = @ItemsOrder WHERE DISP_ORDER = @TagetPosition;
UPDATE GZ_XMB
SET DISP_ORDER = @TagetPosition WHERE DISP_ORDER = 888;