Синтаксис предложения Transact-Sql INTO - PullRequest
0 голосов
/ 02 февраля 2009

Что я здесь не так делаю? Мое использование предложения INTO, кажется, соответствует примеру, который я нашел на справочных страницах Microsoft Transact-SQL, но я должен что-то упустить.

DECLARE @rowtemp table(TestRunID int, RunOrder int)

SELECT TestRunID, ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) 
AS 'RunOrder' INTO @rowtemp FROM TestRuns WHERE RunID = @runID

Ответы [ 4 ]

6 голосов
/ 02 февраля 2009

Вы не можете использовать SELECT INTO с табличной переменной, а также SELECT INTO создаст таблицу, поэтому вы не создадите таблицу сначала

попробуйте это

DECLARE @rowtemp table(TestRunID int, RunOrder int)

INSERT INTO  @rowtemp
SELECT TestRunID, ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) 
AS 'RunOrder'  FROM TestRuns WHERE  RunID = @runID
1 голос
/ 02 февраля 2009

Табличные переменные нельзя использовать с SELECT INTO, вы можете использовать таблицу #temp или немного переставить ваш оператор для чтения.

DECLARE @rowtemp table(TestRunID int, RunOrder int)

INSERT INTO @rowtemp 
 SELECT 
  TestRunID, 
  ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) AS 'RunOrder' 
FROM 
 TestRuns 
WHERE 
 RunID = @runID
1 голос
/ 02 февраля 2009

Нельзя использовать табличную переменную с SELECT INTO. Вместо этого используйте таблицу # temp.

0 голосов
/ 02 февраля 2009

Что сказал Джо. Кроме того, INTO создает новую таблицу. Поскольку эта таблица уже существует (вы только что создали ее), оператор не выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...