更新时间:2025-01-24 GMT+08:00

表迁移

表名

DWS不支持“数据库名.模式名.表名”的形式,需要对应转换为“模式名.表名”的形式。

SQL-Server语法

迁移后语法

CREATE TABLE `analytics-di-dev.abase.buyer_location`

(

id_buyer INT,

id_location INT

);

CREATE TABLE "abase"."buyer_location"

("id_buyer" INT, "id_location" INT) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("id_buyer");

表级参数相关迁移

SQL-Server支持创建行压缩表,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE dbo.T1

(

c1 INT,

c2 NVARCHAR(200)

)

WITH (DATA_COMPRESSION = ROW);

CREATE TABLE "dbo"."t1" ("c1" INT, "c2" VARCHAR(200)) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("c1");

SQL-Server支持创建XML压缩表,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE dbo.T1

(

c1 INT,

c2 XML

)

WITH (XML_COMPRESSION = ON);

CREATE TABLE "dbo"."t1" ("c1" INT, "c2" TEXT) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("c1");

SQL-Server 支持TEXTIMAGE_ON参数,指示某些类型存储在指定文件组,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE dbo.T1

(

c1 INT,

c2 text

) TEXTIMAGE_ON "default";

CREATE TABLE "dbo"."t1" ("c1" INT, "c2" TEXT) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("c1");

SQL-Server 支持SYSTEM_VERSIONING参数,创建系统版本控制表,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE Department

(

DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY,

DepartmentName VARCHAR(50) NOT NULL,

ManagerID INT NULL

)

WITH (SYSTEM_VERSIONING = ON);

CREATE TABLE "department" (

"departmentnumber" CHAR(10) NOT NULL PRIMARY KEY,

"departmentname" VARCHAR(50) NOT NULL,

"managerid" INT

) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("departmentnumber");

列级参数相关迁移

SQL-Server支持创建具有稀疏列的表,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE dbo.T1

(

c1 INT PRIMARY KEY,

c2 VARCHAR(50) SPARSE NULL

);

CREATE TABLE "dbo"."t1" ("c1" INT PRIMARY KEY, "c2" VARCHAR(50)) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("c1");

SQL-Server支持FILESTREAM关键词,指定表的FILESTREAM数据位置,DWS不支持,迁移过程中删除。

SQL-Server语法

迁移后语法

CREATE TABLE dbo.EmployeePhoto

(

EmployeeId INT NOT NULL PRIMARY KEY,

Photo VARBINARY(MAX) FILESTREAM NULL,

MyRowGuidColumn UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID()

);

CREATE TABLE "dbo"."employeephoto" (

"employeeid" INT NOT NULL PRIMARY KEY,

"photo" BYTEA,

"myrowguidcolumn" TEXT NOT NULL

) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("employeeid");

CREATE INDEX "idx_employeephoto_myrowguidcolumn" ON "dbo"."employeephoto"("myrowguidcolumn");

SQL-Server 支持创建聚集索引或非聚集索引,DWS不支持,迁移过程中删除。

主键聚集索引

SQL-Server语法

迁移后语法

CREATE TABLE Department

(

DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY CLUSTERED,

DepartmentName VARCHAR(50) NOT NULL,

ManagerID INT NULL

);

CREATE TABLE "department" (

"departmentnumber" CHAR(10) NOT NULL PRIMARY KEY,

"departmentname" VARCHAR(50) NOT NULL,

"managerid" INT

) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("departmentnumber");

唯一索引非聚集索引。

SQL-Server语法

迁移后语法

CREATE TABLE Department

(

DepartmentNumber CHAR(10) NOT NULL UNIQUE NONCLUSTERED,

DepartmentName VARCHAR(50) NOT NULL,

ManagerID INT NULL

);

CREATE TABLE "department" (

"departmentnumber" CHAR(10) NOT NULL UNIQUE,

"departmentname" VARCHAR(50) NOT NULL,

"managerid" INT

) WITH (ORIENTATION = ROW, COMPRESSION = NO) NOCOMPRESS DISTRIBUTE BY HASH ("departmentnumber");