适用于:Microsoft Fabric 中的✅ 仓库
本教程介绍了如何在 Fabric 数据仓库中使用列来高效创建和管理代理键。
先决条件
- 在工作区中访问具有参与者或更高权限的仓库项目。
- 选择查询工具。 本教程介绍了 Microsoft Fabric 门户中的 SQL 查询编辑器,但可以使用任何 T-SQL 查询工具。
- 基本了解 T-SQL。
什么是 IDENTITY 列?
列 IDENTITY 是一个数值列,可自动生成新行的唯一值。 这使得它非常适合实现代理项键,因为它可确保每一行在不使用手动输入的情况下接收唯一标识符。
创建 IDENTITY 列
若要定义IDENTITY列,请在 T-SQL 语法的IDENTITY列定义中指定关键字CREATE TABLE:
CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
[column_name] BIGINT IDENTITY,
[ ,... n ],
-- Other columns here
);
注释
在 Fabric 数据仓库中, bigint 是唯一支持的列数据类型 IDENTITY 。 此外,seedincrement不支持 T-SQL IDENTITY 的属性。 有关详细信息,请参阅 IDENTITY 列和 IDENTITY(Transact-SQL)。 有关创建表的详细信息,请参阅 Microsoft Fabric 中的仓库中创建表。
使用 IDENTITY 列创建表
在本教程中,我们将从 Trip创建更简单的表版本,并向其添加新TripIDIDENTITY列。 每次插入新行时, TripID 都会使用表中唯一的新值进行分配。
定义一个带有
IDENTITY列的表:CREATE TABLE dbo.Trip ( TripID BIGINT IDENTITY, DateID int, MedallionID int, HackneyLicenseID int, PickupTimeID int, DropoffTimeID int );接下来,我们将用于
COPY INTO将一些数据引入此表。 在与列一起使用COPY INTO和IDENTITY时,必须提供列清单,将其映射到源数据中的列。COPY INTO Trip (DateID 1, MedallionID 2, HackneyLicenseID 3, PickupTimeID 4, DropoffTimeID 5) FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013' WITH ( FILE_TYPE = 'CSV', FIELDTERMINATOR = '|', COMPRESSION = 'GZIP' );可以使用简单的查询预览分配给
IDENTITY列的数据和值:SELECT TOP 10 * FROM Trip;输出包括每行
TripID列的自动生成值。重要
你的值可能与本文中观察到的值不同。
IDENTITY列生成的随机值保证唯一,但序列中可能存在间隙,同时,值可能不按顺序排列。您还可以使用
INSERT INTO在表中引入新行。INSERT INTO dbo.Trip VALUES (20251104, 3524, 28804, 51931, 52252);可以提供
INSERT INTO列列表,但这不是必须的。 在提供列列表时,请指定所有需要提供输入数据的列的名称,但不包括IDENTITY列。INSERT INTO dbo.Trip (DateID, MedallionID, HackneyLicenseID, PickupTimeID, DropoffTimeID) VALUES (20251104, 8410, 24939, 74609, 49583);我们可以通过一个简单的查询来查看已插入的行:
SELECT * FROM dbo.Trip WHERE DateID = 20251104;
观察分配给新行的值: