Не могу заставить этот простой код временной таблицы работать - PullRequest
0 голосов
/ 28 апреля 2018

Когда две средние строки вынуты, пустой вывод отображается правильно (один столбец)!

CREATE TABLE #ProductNames (ProductName varchar(40));

INSERT INTO #ProductNames
SELECT p.ProductName FROM DBO.PRODUCTS AS p;

SELECT * FROM #ProductNames;

Screenshot of error while running the whole thing

Вот как выглядит DBO.PRODUCTS:

Screenshot of how the main data table looks like

Кроме того, вопрос содержит странное ПРИМЕЧАНИЕ / предложение в последней строке, которая гласит: << Примечание: вам нужно указать таблицу «Продукты» как «Продукты», а не «dbo.Products». >>

Это результат, следующий за этой запиской! -
[Following the 'Note' in the Instructions 3

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Скорее всего, сайт создал схему для вас.

Так получилось, что в схеме [dbo] есть таблица [Products].

Вам нужно работать с [Products], а не с [dbo]. [Products]. При разрешении неквалифицированного имени объекта, такого как [Продукты], SQL Server сначала будет искать объект в схеме по умолчанию. Скорее всего, ваша схема по умолчанию - это та, которую сайт создал для вас.

0 голосов
/ 22 июля 2019

Мне известно, что прошло более 12 месяцев после факта, но в настоящее время я выполняю тот же курс, от которого ОП опубликовал вопрос, этот ответ был только что принят DataCamp как правильный:

CREATE TABLE #ProductNames(ProductName varchar(40))

INSERT INTO #ProductNames 
SELECT ProductName FROM Products

SELECT * FROM  #ProductNames
0 голосов
/ 28 апреля 2018

Попробуйте использовать инструкцию SELECT INTO следующим образом:

SELECT ProductName 
INTO #ProductNames
FROM DBO.PRODUCTS;

SELECT * 
FROM #ProductNames;
...