SQL Server,问题在TSQL中创建临时表

Gra*_*ant 2 sql t-sql sql-server sql-server-2005 temp-tables

嗨,当我执行以下TSQL时,我收到以下错误消息.但是SQL语法有什么不对吗?

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

消息102,级别15,状态1,行3'','附近的语法不正确.

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

OMG*_*ies 6

正如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'
Run Code Online (Sandbox Code Playgroud)

也可以使用SELECT ... INTO子句在单个查询中执行此操作,但临时表不能存在:

SELECT *
  INTO #tb
  FROM (SELECT CAST(1 AS TINYINT) AS t1, 
               CAST('a' AS VARCHAR(50)) AS t2
        UNION ALL
        SELECT 2, 'b') x
Run Code Online (Sandbox Code Playgroud)