【发布时间】: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 name , image address 和 Id 我得到这个数据
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