无法让这个简单的临时表代码工作

时间:2018-04-28 11:59:27

标签: sql-server tsql temp-tables

取出中间两行时,空白输出正确显示(单列)!

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

此外,该问题在最后一行中带有一个奇怪的注释/建议:<<注意:您需要将Products表指定为Products,而不是dbo.Products。 >>

这是该笔记之后的结果! -
[Following the 'Note' in the Instructions 3

3 个答案:

答案 0 :(得分:0)

尝试使用SELECT INTO语句,如下所示:

SELECT ProductName 
INTO #ProductNames
FROM DBO.PRODUCTS;

SELECT * 
FROM #ProductNames;

答案 1 :(得分:0)

网站最有可能为您创建了一个架构。

恰好在[dbo]模式中有[Products]表。

您需要使用[产品],而不是[dbo]。[产品]。解析非限定对象名称(例如[Products])时,SQL Server将首先在默认架构中查找对象。最有可能的是,您的默认架构是网站为您创建的架构。

答案 2 :(得分:0)

我知道这是事实发生后的12个月,但是我目前正在执行OP向其发布问题的同一过程,这个答案刚刚被DataCamp接受为正确的:

CREATE TABLE #ProductNames(ProductName varchar(40))

INSERT INTO #ProductNames 
SELECT ProductName FROM Products

SELECT * FROM  #ProductNames