错误:
找不到存储过程“SELECT TOP 1 name FROM (SELECT TOP 5 name FROM sys.tables ORDER BY name DESC) as t ORDER BY name ASC”。
代码:
WHILE (@interval <= @max)
BEGIN
SET @SQL = 'SELECT TOP 1 name FROM (' +
SELECT TOP ' + convert(varchar(10), @interval) +
' name FROM sys.tables ORDER BY name DESC) as t ORDER BY name ASC'
EXEC @SQL
SELECT @interval = @interval + 1
END
自行执行以下命令可以正常工作:
SELECT TOP 1 name
FROM
(SELECT TOP 5 name
FROM sys.tables
ORDER BY name DESC) as t
ORDER BY
name ASC
手动增加内部 TOP # 并在没有 TSQL 的情况下运行命令将正确地轮换每个表。(这最终将包括一个用于 Column 的嵌套循环,以及另一个用于在该列中进行搜索的嵌套循环。)
该命令在没有变量的情况下运行让我认为这是一个范围问题。我不应该通过将表名列表插入到临时表中来解决这个问题吗?主键为种子 1,为 row_id 递增 1,然后通过递增我的 @row_id = row_id 循环遍历表?
有什么建议么?