SQL Server中的临时表

迪帕里·瓦格(Dipali Wagh)

我在SQL Server存储过程中使用了if else语句。

对于其他所有情况,我都选择记录并存储在临时表中。但是我必须在每种情况下使用具有不同名称的临时表。

是否可以在其他情况下使用相同的临时表?

这是我的存储过程

alter procedure GetRecords
    @Id int ,
    @status varchar(10),
    @EmpId int,
    @PageIndex INT = 1,
    @PageSize INT = 10,
    @RecordCount INT OUTPUT
as
begin
    if(@Id = 1)
    begin
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        INTO #Results  from DiscrepencyMaster     where [Status]=@status

        SELECT @RecordCount = COUNT(*)
        FROM #Results

        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    end
    else if (@Id = 2)
    begin
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        INTO #Results1  from DiscrepencyMaster where EmpId=@EmpId

        SELECT @RecordCount = COUNT(*)
        FROM #Results1

        SELECT * FROM #Results1
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    end 
end
亚历克斯·萨博

这对您有用吗?

alter procedure GetRecords
    @Id int ,
    @status varchar(10),
    @EmpId int,
    @PageIndex INT = 1,
    @PageSize INT = 10,
    @RecordCount INT OUTPUT
as
begin

        IF OBJECT_ID('tempdb..#Results') IS NOT NULL
        DROP TABLE #Results



    if(@Id = 1)
    begin 

        IF OBJECT_ID('tempdb..#Results') IS NOT NULL
        DROP TABLE #Results


        INSERT INTO #Results
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        from DiscrepencyMaster     where [Status]=@status


        SELECT @RecordCount = @@ROWCOUNT


        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1


    end
    else if (@Id = 2)
    begin

        IF OBJECT_ID('tempdb..#Results') IS NOT NULL
        DROP TABLE #Results


        INSERT INTO #Results    
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        from DiscrepencyMaster where EmpId=@EmpId


        SELECT @RecordCount = @@ROWCOUNT


        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1


    end 

DROP TABLE #Results
end

或者,如果您不想每次都删除它,则应尝试类似的操作:

alter procedure GetRecords
    @Id int ,
    @status varchar(10),
    @EmpId int,
    @PageIndex INT = 1,
    @PageSize INT = 10,
    @RecordCount INT OUTPUT
as
begin
        CREATE TABLE #Results
    (
        RowNumber           INT,
        Id                  INT,    
        dDateTime           Datetime,
        Status              varchar(max),
        stage               varchar(max)
    )
        SET IDENTITY_INSERT #Results ON

    if(@Id = 1)
    begin 

        INSERT INTO #Results
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        from DiscrepencyMaster     where [Status]=@status

        SELECT @RecordCount = @@ROWCOUNT

        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    end
    else if (@Id = 2)
    begin

        INSERT INTO #Results    
        select ROW_NUMBER() OVER  (ORDER BY Id  desc)AS RowNumber,Id,dDateTime,[Status],Stage 
        from DiscrepencyMaster where EmpId=@EmpId

        SELECT @RecordCount = @@ROWCOUNT

        SELECT * FROM #Results
        WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    end 

DROP TABLE #Results
end

这将在脚本开始运行时创建表,并将其放到最后。这些值将被插入到这个已经存在的表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server临时表中的列数

来自分类Dev

SQL Server中临时表的范围

来自分类Dev

SQL Server中的表值函数;函数中的表是临时的?

来自分类Dev

在SQL Server中基于临时表创建永久表

来自分类Dev

SQL Server 联合临时表

来自分类Dev

从SQL Server中的子查询创建临时表导致错误

来自分类Dev

如何查看由SQL Server中的代码创建的临时表?

来自分类Dev

何时在SQL Server中销毁全局临时表?

来自分类Dev

更新列名称未知的SQL Server临时表中的数据

来自分类Dev

在SQL Server 2008中删除\创建临时表

来自分类Dev

从SQL Server中的子查询创建临时表导致错误

来自分类Dev

本地临时表SQL Server中的“级别”作用域

来自分类Dev

在Python脚本中创建SQL Server临时表

来自分类Dev

在SQL Server 2005中为临时表创建游标

来自分类Dev

SQL Server中带有XML列的临时表

来自分类Dev

在 SQL Server 单元测试中声明临时表的语法

来自分类Dev

在SQL Server 2008中的存储过程中使用的临时表,表变量,全局临时表之间的差异

来自分类Dev

SQL Server声明并执行临时表查询

来自分类Dev

SQL Server将查询从临时表插入到多个表中

来自分类Dev

SQL Server将查询从临时表插入到多个表中

来自分类Dev

在Sql Server中,如何将游标中的值放入临时表中?

来自分类Dev

SQL Server表:在SQL Server 2014中加入临时表变量(@table)需要很长时间

来自分类Dev

SQL Server表:在SQL Server 2014中加入临时表变量(@table)需要花费很长时间

来自分类Dev

如果使用参数绑定,PHP中的查询将无法在SQL Server中查看临时表

来自分类Dev

在存储过程中创建和使用的SQL Server中的临时表

来自分类Dev

在SQL Server中拆分行和列并插入到临时表中?

来自分类Dev

如何在 dqe 中执行“for json path”并在 SQL Server 的临时表中插入执行结果?

来自分类Dev

如何在SQL Server中插入现有的临时表

来自分类Dev

SQL Server中的临时表导致“已经存在名为”的对象错误

Related 相关文章

  1. 1

    SQL Server临时表中的列数

  2. 2

    SQL Server中临时表的范围

  3. 3

    SQL Server中的表值函数;函数中的表是临时的?

  4. 4

    在SQL Server中基于临时表创建永久表

  5. 5

    SQL Server 联合临时表

  6. 6

    从SQL Server中的子查询创建临时表导致错误

  7. 7

    如何查看由SQL Server中的代码创建的临时表?

  8. 8

    何时在SQL Server中销毁全局临时表?

  9. 9

    更新列名称未知的SQL Server临时表中的数据

  10. 10

    在SQL Server 2008中删除\创建临时表

  11. 11

    从SQL Server中的子查询创建临时表导致错误

  12. 12

    本地临时表SQL Server中的“级别”作用域

  13. 13

    在Python脚本中创建SQL Server临时表

  14. 14

    在SQL Server 2005中为临时表创建游标

  15. 15

    SQL Server中带有XML列的临时表

  16. 16

    在 SQL Server 单元测试中声明临时表的语法

  17. 17

    在SQL Server 2008中的存储过程中使用的临时表,表变量,全局临时表之间的差异

  18. 18

    SQL Server声明并执行临时表查询

  19. 19

    SQL Server将查询从临时表插入到多个表中

  20. 20

    SQL Server将查询从临时表插入到多个表中

  21. 21

    在Sql Server中,如何将游标中的值放入临时表中?

  22. 22

    SQL Server表:在SQL Server 2014中加入临时表变量(@table)需要很长时间

  23. 23

    SQL Server表:在SQL Server 2014中加入临时表变量(@table)需要花费很长时间

  24. 24

    如果使用参数绑定,PHP中的查询将无法在SQL Server中查看临时表

  25. 25

    在存储过程中创建和使用的SQL Server中的临时表

  26. 26

    在SQL Server中拆分行和列并插入到临时表中?

  27. 27

    如何在 dqe 中执行“for json path”并在 SQL Server 的临时表中插入执行结果?

  28. 28

    如何在SQL Server中插入现有的临时表

  29. 29

    SQL Server中的临时表导致“已经存在名为”的对象错误

热门标签

归档