2016-08-11 7 views
0

Я использовал ниже код,Сообщение об ошибке при использовании Select Into

SELECT RowsCount = ROW_NUMBER() OVER(ORDER BY PrijsBoek.[Item Code] DESC, PrijsBoek.[Buy-From BP Code] DESC), 
* 
INTO #Student 
FROM [iqbs DataWarehouse].[Purchase].[factPurchasePriceBooks] as PrijsBoek 

DECLARE @MaxRowsCount INT 
SET @MaxRowsCount = (SELECT MAX(RowsCount) FROM #Student) 
DECLARE @Iter INT 
SET @Iter = (SELECT MIN(RowsCount) FROM #Student) 
WHILE @Iter <= @MaxRowsCount 
BEGIN 
    SELECT * 
    FROM #Student 
    WHERE RowsCount = @Iter 
    SET @Iter = @Iter + 1 
END 
DROP TABLE #Student 

Но я получаю следующее сообщение об ошибке (ы):

Msg 207, Level 16, State 1, Line 7 
Invalid column name 'RowsCount'. 
Msg 207, Level 16, State 1, Line 9 
Invalid column name 'RowsCount'. 
Msg 207, Level 16, State 1, Line 14 
Invalid column name 'RowsCount'. 

Anybody любой ключ?

+0

этот код acually точная копия кода или вручную переписать какой-либо из этого? На мой взгляд, вы не должны получать эту проблему, поэтому я думаю, что в первом случае в вашем реальном коде вы могли бы ошибаться «Rowscount». –

ответ

0

Try следующий код и принять его к вашей ситуации:

SELECT RowsCount = ROW_NUMBER() OVER(ORDER BY Message_Id DESC), * 
INTO #Student 
FROM sys.Messages 

DECLARE @MaxRowsCount INT = @@ROWCOUNT, @Iter INT = 1, @Text AS VARCHAR(MAX); 
SELECT @Iter , @MaxRowsCount 

WHILE @Iter <= @MaxRowsCount 
BEGIN 
    SELECT @Text = Text FROM #Student WHERE RowsCount = @Iter 
    PRINT @Text 
    SET @Iter += 1; 
END 
DROP TABLE #Student 
Смежные вопросы