虽然我已经删除了临时表,但是如果将创建具有相同表名和附加列名的临时表,则不允许我选择新列名 .
我一直在使用SQL Server 2008 .
试试这个代码:
IF (object_id('tempdb..#xyz') IS NOT NULL)
DROP TABLE #xyz;
CREATE TABLE #xyz(
[a] [datetime] NULL,
[b] [nvarchar](255) NULL,
[c] [nvarchar](255) NULL
) ON [PRIMARY]
GO
IF (object_id('tempdb..#xyz') IS NOT NULL)
DROP TABLE #xyz;
CREATE TABLE #xyz(
[a] [datetime] NULL,
[b] [nvarchar](255) NULL,
[c] [nvarchar](255) NULL,
[d] [nvarchar](255) NULL
) ON [PRIMARY]
SELECT [d] FROM #xyz
这说:
Msg 207, Level 16, State 1, Line 13
Invalid column name 'd'.
同样,如果我们尝试选择Martin Parkin提到的 *
,它会给出列名为 d
的结果 .
我无法为动态列选择 *
,它不允许我选择其他列 .
为什么?
1 回答
您需要
GO
来分隔DROP
和CREATE
语句 . 它们需要分开进行 .