通用上移,下移,置顶存储。
2013-06-06 11:24
357 查看
-- ============================================= -- Purpose: 通用上移、下移、置顶存储,用于改变排序字段的值或类似字段 -- Author : jesser -- Time : 2009-10-17 -- ============================================= create procedure [dbo].[do_CommonMoveDown] @flag int = 0, -- 0: 上移 1:下移 2: 置顶 @tableName nvarchar(50), -- 表名 @primaryKeyField nvarchar(50), -- 主键字段名 @primaryKeyValue int, -- 主键值 @sortField nvarchar(50), -- 待改变排序字段值的字段名 @groupField nvarchar(50)='', -- 分组字段名 @groupFieldValue nvarchar(50)= '' -- 分组字段值 AS begin declare @sql nvarchar(4000),@swapid int --需要交换排序值的行数据的主键ID --临时表 create table #tbSwap ( PrimaryKeyID int, --主键 OrderID int --排序值 ) set @sql = 'insert into #tbSwap (PrimaryKeyID,OrderID) select ' +@primaryKeyField +','+@sortField+' from '+@tableName if (@groupField<>'' AND @groupFieldValue<>'') set @sql = @sql+' where '+@groupField+'='+@groupFieldValue set @sql = @sql+' order by '+@sortField+' desc ' exec(@sql) set @sql = '' if(@flag=0) --上移 begin select top 1 @swapid=PrimaryKeyID from #tbSwap where OrderID>(select OrderID from #tbSwap where PrimaryKeyID=@primaryKeyValue) order by OrderID asc set @sql='update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@swapid)+')'+' where '+@primaryKeyField +'='+convert(varchar(15),@primaryKeyValue) + ';' set @sql=@sql+'update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@primaryKeyValue)+')'+' where '+@primaryKeyField +'='+convert(varchar(100),@swapid) + ';' exec (@sql) END IF(@flag=1) --下移 begin select top 1 @swapid=PrimaryKeyID from #tbSwap where OrderID<(select OrderID from #tbSwap where PrimaryKeyID=@primaryKeyValue) set @sql='update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@swapid)+')'+' where '+@primaryKeyField +'='+convert(varchar(15),@primaryKeyValue) + ';' set @sql=@sql+'update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@primaryKeyValue)+')'+' where '+@primaryKeyField +'='+convert(varchar(100),@swapid) + ';' exec (@sql) end if(@flag=2) --置顶 begin select top 1 @swapid=PrimaryKeyID from #tbSwap where OrderID=(select max(OrderID) from #tbSwap) set @sql='update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@swapid)+')'+' where '+@primaryKeyField +'='+convert(varchar(15),@primaryKeyValue) + ';' set @sql=@sql+'update '+@tableName+' set '+@sortField+'=(select OrderID from #tbSwap where PrimaryKeyID='+ convert(varchar(15),@primaryKeyValue)+')'+' where '+@primaryKeyField +'='+convert(varchar(100),@swapid) + ';' exec (@sql) end exec(@sql) end go
相关文章推荐
- 简单通用的数据 置顶、上移、下移 sql 存储过程
- table 行上移 下移 置顶 删除
- VC CListCtrl控件的上移和下移的通用方法
- js上移、下移、置顶、置底操作
- js_上移_下移_置顶_置地
- C#关于如何给数据排序,置顶,上移,下移,置尾
- table : 上移,下移,置顶
- jQuery 元素的选中, 置顶、上移、下移、置底、删除
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
- 控制标签上移、下移、置顶、置底
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
- 对表数据进行(置顶,上移,下移,置底操作)---数据库sql
- 对表数据进行(置顶,上移,下移,置底操作)---数据库sql
- 通用的排序的上移下移功能
- 使用js实现上移、下移、置顶、置底功能及源码案例
- CheckBoxList与SELECT 添加删除 ,置顶,上移,下移,置底
- Winfrom 中 ListBox如何实现上移下移,置顶 置底的功能
- 通用的排序的上移下移功能
- jq实现表格上移/下移/置顶功能
- ASP.NET 中listbox实现上移下移置顶置底,(支持多选)