我正在尝试在天蓝色突触数据仓库中创建临时表。
CREATE TABLE dbo.Department
(
DeptID INT NOT NULL PRIMARY KEY CLUSTERED
, DeptName VARCHAR(50) NOT NULL
, ManagerID INT NULL
, ParentDeptID INT NULL
, ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START NOT NULL
, ValidTo DATETIME2 GENERATED ALWAYS AS ROW END NOT NULL
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DepartmentHistory));
截至 2023 年 8 月,Microsoft Learn(文档)页面Azure Synapse SQL 中支持的 Transact-SQL 功能 未明确提及时态表或
FOR SYSTEM_TIME
子句,但关于 SELECT
语句的部分确实提到了
支持 SELECT 语句,但不支持某些 Transact-SQL 查询子句 [...]。
临时表的文档页面本身列出了它适用于哪些版本的 SQL Server,并且该列表中不包括 Synapse DW:
结合您在尝试时遇到语法错误的事实,似乎可以肯定 Azure Synapse DW 目前不支持此语言功能。当然,这种情况将来可能会改变。
CREATE TABLE #Department (
ID INT PRIMARY KEY,
Name VARCHAR(50),
Manager VARCHAR(50)
);
为了创建临时表,您必须在表名称前面包含 (#) 哈希或井号,因为它表示临时表。
您也可以使用完全限定的服务器名称来查询。
例如
select * from tempDb#department