【发布时间】:2018-07-13 14:12:14
【问题描述】:
我正在尝试将我的 sql 结果转换为临时表,但它不断返回以下错误:
期待 As 或 Id 或quoted-ID。
我知道 sql 结果是正确的,但是当我添加SELECT * INTO #newtable FROM 时,sql 查询不起作用。 怎么了?
SELECT *
INTO #newtable
FROM
(
SELECT
Url,Id
FROM Blob
WHERE
Id IN
(
SELECT
BlobId
FROM
XrefBlobProjectMeeting
)
AND Extension NOT IN ('xlsx','xls','avi','jpg','mp4','wmv','png')
AND (RefContentTypeId IN (11,13,14,35))
)
【问题讨论】:
-
尝试添加到末尾:as x
-
这是 MySQL 还是 sql server?答案可能不同
-
@RaymondNijland
INSERT INTO ... SELECT和SELECT...INTO的行为非常不同。 -
@RaymondNijland 它没有。它说它“基本相同”。我实际上完全不同意这一点。对于 SyBase(现在是 SQL Server),如果您要运行
INSERT INTO dbo.MyTable SELECT 1 AS i;,该语句将失败,但是,SELECT 1 AS i INTO dbo.MyTable;将正常工作。相反,CREATE TABLE MyTable (i int); INSERT INTO dbo.MyTable SELECT 1 AS i;可以正常工作,但CREATE TABLE MyTable (i int); SELECT 1 AS i INTO dbo.MyTable;不会。 -
SELECT..INTO语法将创建对象作为语句的一部分。如果对象已经存在,则语句失败。对于INSERT INTO...SELECT,情况完全相反;该对象必须已经存在,如果不存在,则语句将失败。
标签: sql sql-server temp-tables