Claves principales, claves externas y claves únicas en Warehouse en Microsoft Fabric

Se aplica a:✅ punto de conexión de análisis de SQL y un almacén de Microsoft Fabric

Obtenga más información sobre las restricciones de tabla en el punto de conexión y el almacén de análisis SQL en Microsoft Fabric, incluidas la clave principal, las claves extranjeras y las claves únicas.

Importante

Para agregar o quitar la clave principal, la clave externa o las restricciones únicas, use ALTER TABLE. No se pueden crear en línea dentro de una instrucción CREATE TABLE.

Restricciones de tabla

El punto de conexión y el almacén de análisis de SQL en Microsoft Fabric admiten estas restricciones de tabla:

  • PRIMARY KEY solo se admite cuando se usan NONCLUSTERED y NOT ENFORCED.
  • FOREIGN KEY solo se admite cuando se usa NOT ENFORCED.
  • La restricción UNIQUE solo es compatible cuando se usan los valores NONCLUSTERED y NOT ENFORCED.

Para conocer la sintaxis, consulte ALTER TABLE.

Importante

Existen limitaciones con la adición de restricciones de tabla o columnas al usar el control de código fuente con Warehouse.

Ejemplos

Cree una tabla de Microsoft Fabric Warehouse con una clave principal:

CREATE TABLE PrimaryKeyTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE PrimaryKeyTable ADD CONSTRAINT PK_PrimaryKeyTable PRIMARY KEY NONCLUSTERED (c1) NOT ENFORCED;

Cree una tabla de Microsoft Fabric Warehouse con una restricción única:

CREATE TABLE UniqueConstraintTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE UniqueConstraintTable ADD CONSTRAINT UK_UniqueConstraintTablec1 UNIQUE NONCLUSTERED (c1) NOT ENFORCED;

Cree una tabla de Microsoft Fabric Warehouse con una clave externa:

CREATE TABLE ForeignKeyReferenceTable (c1 INT NOT NULL);

ALTER TABLE ForeignKeyReferenceTable ADD CONSTRAINT PK_ForeignKeyReferenceTable PRIMARY KEY NONCLUSTERED (c1) NOT ENFORCED;

CREATE TABLE ForeignKeyTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE ForeignKeyTable ADD CONSTRAINT FK_ForeignKeyTablec1 FOREIGN KEY (c1) REFERENCES ForeignKeyReferenceTable (c1) NOT ENFORCED;