如何从动态查询创建临时表? [英] How to create temp table from a dynamic query?
本文介绍了如何从动态查询创建临时表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想为分页[ Main Motive ]创建动态查询,这是我的代码:
I want to create dynamic query for paging [Main Motive], here is my code:
Alter proc proc_GetData
(
@TableName varchar(500)='tblPropertyType',
@PrimaryKey varchar(500)='Id',
@Columns varchar(max)='PropertyType',
@WhereCondition varchar(max)='',
@RecsPerPage int =3,
@Page int=1,
@SortColumn varchar(500)='Id',
@SortDirection Varchar(56)='asc'
)
as
DECLARE @SQL VARCHAR(MAX)
DECLARE @DSQL VARCHAR(MAX)
DECLARE @FirstRec int, @LastRec int
SET @FirstRec = (@Page - 1) * @RecsPerPage
SET @LastRec = (@Page * @RecsPerPage + 1)
select @FirstRec
select @LastRec
SET @SQL='
SELECT
ROW_NUMBER() OVER (ORDER BY ' + @SortColumn+ ' '+ @SortDirection +') RowNum,'+ @PrimaryKey +' , ' +@Columns + ' from ' +@TableName+ ' Where 1=1 '+
@WhereCondition
我想做的是:
- 首先:对上述查询中的临时表中的所有记录进行惰性化.
- 第二:
SELECT * FROM @TEMPResult WHERE RowNum > @FirstRec AND RowNum < @LastRec
.
请帮助我
推荐答案
SET @SQL='SELECT ROW_NUMBER() OVER
(ORDER BY ' + @SortColumn+ ' ' + @SortDirection + ') RowNum, ' + @PrimaryKey + ', ' + @Columns + '
INTO tempTableName
FROM ' + @TableName + ' Where 1 = 1 ' + @WhereCondition
这篇关于如何从动态查询创建临时表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文