【问题标题】:error in sql query resultsql查询结果错误
【发布时间】:2014-11-24 12:02:21
【问题描述】:

我有这个问题

DECLARE @Base nvarchar(200) 

SET @Base = 'WITH Base AS (SELECT Id, ROW_NUMBER() OVER (ORDER BY Id DESC) RN FROM'
                        + Quotename(@SampleWorkTbl) + ')
                        SELECT * INTO ##temp FROM Base'

EXEC (@Base)

SELECT * FROM   ##temp

declare @command nvarchar(max)

Set @command='SELECT TOP 15 [Name],[ImageAddress],(SELECT TOP 1 COUNT(Id) FROM' + QUOTENAME(@SampleWorkTbl) + ') as AllSampleCount FROM ' + QUOTENAME(@SampleWorkTbl) + 
            ' WHERE [Id] IN (SELECT TOP 15 Id From ##temp WHERE RN > ((@Count-1)*15) ORDER BY Id DESC) ORDER BY Id DESC'

exec (@command)

drop table ##temp

我想从传递给过程的任何表名中获取 [Name],[ImageAddress] 和 Id 计数

但不是 get nameimage addressId 我得到这个数据

Id  RN
10   1
9    2
8    3
7    4
6    5
5    6
4    7
3    8
2    9
1    10

当我再次尝试时,我得到了这个错误

There is already an object named '##temp' in the database.

@SampleWorkTbl 是传递给此查询的任何表的名称

我该如何解决这个问题?

谢谢你的帮助

【问题讨论】:

  • 什么是@SampleWorkTbl ??
  • @SampleWorkTbl 是传递给此查询的任何表的名称

标签: sql sql-server stored-procedures sql-server-2012


【解决方案1】:

您的查询正在执行,直到

EXEC (@Base)

你得到了

数据库中已经有一个名为“##temp”的对象。

SELECT * FROM   ##temp

表示你在某处出错,但没有达到目的

drop table ##temp

正如@Ganesh_Devlekar 提到的 尝试添加

if  (object_ID('tempdb..##temp')) is not NULL
DROP TABLE ##temp

一开始

【讨论】:

    【解决方案2】:

    试试这个:

    对于

    数据库中已经有一个名为“##temp”的对象。

    在创建新的临时表之前你需要使用这个:

    if  (object_ID('tempdb..##temp')) is not NULL
    DROP TABLE ##temp
    

    您需要在这些列中添加[Name],[ImageAddress],ID以获得期望输出

     SET @Base = 'WITH Base AS (SELECT [Name],[ImageAddress],ID,COUNT(ID) CntID, ROW_NUMBER() OVER (ORDER BY Id DESC) RN FROM'
                            + Quotename(@SampleWorkTbl) + ' GROUP BY [Name],[ImageAddress],ID)
                            SELECT * INTO ##temp FROM Base'
    

    【讨论】:

    • 感谢您的帮助,我如何解决名称和图像地址以及 id 计数的问题?
    • @SH.Developer 现已更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多