嗨,当我执行以下TSQL时,出现以下错误消息。但是SQL语法没有错吗?

create table #tb ([t1] tinyint, [t2] varchar(50))
insert into #tb values
    (1, 'a'),
    (2, 'b')

Msg 102,第15级,状态1,第3行
','附近的语法不正确。

SQL查询窗口中没有其他内容。运行SQL Server 2005。

最佳答案

正如jmoreno所提到的,VALUES (), ()语法受SQL Server 2008+支持,但是您将其标记为SQL Server 2005。

用:

CREATE TABLE #tb ([t1] tinyint, [t2] varchar(50))

INSERT INTO #tb
SELECT 1, 'a'
UNION ALL
SELECT 2, 'b'

也可以使用 SELECT ... INTO clause在单个查询中执行此操作,但临时表尚不存在:
SELECT *
  INTO #tb
  FROM (SELECT CAST(1 AS TINYINT) AS t1,
               CAST('a' AS VARCHAR(50)) AS t2
        UNION ALL
        SELECT 2, 'b') x

关于sql - SQL Server,在SQL中创建临时表时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6104302/

10-11 03:31
查看更多