易截截图软件、单文件、免安装、纯绿色、仅160KB

Microsoft SqlServer 2005 通用分页 存储过程

本来我是不赞成使用通用存储过程的,主要是因为根据表结构来定制分页查询不用动态的拼SQL,这样才是真正的高效,而且只要写过一个,那么再有新需求的时候,小范围改动几处就ok了。
但总是有人向我讨要或者讨论通用存储过程,没办法,被逼无奈,良心丧与困境。
木有找到T-SQL代码编辑器
-- =============================================
-- Author: 袁立强
-- Create date: 2006-5-11
-- Description: SQL 2005 版本 通用分页存储过程
-- For: FirstDM
-- BLOG: http://blog.csdn.net/ylqmf
-- =============================================
CREATE PROCEDURE [dbo].[Pagination]
@Table nvarchar(4000) = N'select * from sys.objects',
@ID nvarchar(200) = N'[object_id]',
@OrderBy nvarchar(2000) = N'[object_id]',
@PageSize int = 20,
@PageIndex int = 1,
@RowCount int OUTPUT
as
if @PageIndex<1
begin
set @PageIndex=1;
end
if @PageSize<1
begin
set @PageSize = 20;
end
declare @begin int
declare @end int
set @begin=(@PageIndex-1)*@PageSize+1;
set @end = @PageIndex*@PageSize;
declare @from nvarchar(4000)
declare @sql nvarchar(4000)
declare @index int
select @index = PATINDEX(N'%from%',@table);
if @index = 0
begin
set @from = N'from '+@Table;
set @sql= N'select * from '+@Table;
end
else
begin
set @from = SUBSTRING(@table,@index,LEN(@table)-@index+1);
set @sql = @Table;
end
declare @parameters nvarchar(50)
set @parameters = '@RowCount int OUTPUT';
declare @SQLString nvarchar(max)
select @SQLString =N'
declare @Tpage table
(
id bigint,
inx bigint PRIMARY KEY
);
with cte_page
as
(
select '+@id+N' as id,ROW_NUMBER() over (order by '+@orderby+N') as inx '+@from+N'
)
insert @Tpage select * from cte_page;
with cte_temp
as
(
'+@sql+N'
)
select a.* from cte_temp as a
inner join @Tpage as b on b.id = a.'+@ID+N'
where b.inx between '+CONVERT(nvarchar(100), @begin)+N' and '+CONVERT(nvarchar(100), @end)+N';
with cte_count
as
(
select top 1 inx from @Tpage order by inx desc
)
select @RowCount = inx from cte_count;
'
exec sp_executesql @SQLString , @


相关文档:

在SqlServer中用自定义函数返回动态表内容

说明:在SupplyPlan表中,存储着每一个RequestQty及其对应的开始终止日期段;因为我在以后处理中要判断当前天属于哪一条RequestQty的日期区间并进行处理,所以后台数据库只能设计成这种存储形式;但是在页面的显示时候,需要动态的根据每一个SupplyPlanNo生成对应的多条日期区段及其数量显示,所以采用自定义函数形式返回处 ......

简单的3个SQL视图搞定所有SqlServer数据库字典 转

数据库字典包括表结构(分2K和2005)、索引和主键.外键.约束.视图.函数.存储过程.触发器.规则。可以在企业管理器、查询分析器中简单执行,直接了当的查出SQL2K及SQL2005的所有数据字典,方便文档的编写,希望对大家有帮助。
1. SqlServer2000数据库字典--表结构.sql
SELECT TOP 100 PERCENT --a.id,
   & ......

sqlserver同时导出表结构和数据

用oracle习惯了,导出用exp语句,直接生成dmp文件,导入用imp语句,表结构和数据同时搞定。最近需要用到sqlserver,总是不能够同时导出表结构和数据,google上百度了很久也没解决方法。
右键--所有任务--导出数据--选择数据源,数据源为用于SQLServer的Microsoft OLE DB提供程序,选择验证方式 ......

SqlServer触发器理解

触发器的定义与分类:
只要触发器所在表上的对应时间发生,就会自动执行该触发器的代码.实际上,我们并不能直接调用触发器,唯一的方法是在分配哦触发器的表上执行某种行为方可激活触发器.      [触发器是一种特殊的存储过程,他在执行特定的语言事件时生效
 
     & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号