Relationships, objet (TMSL)

S’applique à : SQL Server 2016 et versions ultérieures Analysis Services Azure Analysis Services Fabric/Power BI Premium

Définit une relation entre une table source et une table cible, avec la possibilité de spécifier la cardinalité et la direction des filtres de requête et de sécurité.

Définition de l'objet

Tous les objets ont un ensemble commun de propriétés, notamment le nom, le type, la description, une collection de propriétés et des annotations. Les objets relation ont également les propriétés suivantes.

Isactive
Boolean qui indique si la relation est marquée comme Active ou Inactive. Une relation Active est automatiquement utilisée pour le filtrage entre les tables. Une relation Inactive peut être utilisée explicitement par les calculs DAX avec la fonction USERELATIONSHIP.

**crossFilteringBehavior ** Indique comment les relations influencent le filtrage des données. Les valeurs autorisées sont :

  • OneDirection (1) : les lignes sélectionnées à la fin « À » de la relation filtrent automatiquement les analyses de la table à l’extrémité « From » de la relation.

  • BothDirections (2) : les filtres à chaque extrémité de la relation filtrent automatiquement l’autre table.

  • Automatique (3) : le moteur analyse les relations et choisit l’un des comportements à l’aide de l’heuristique.

joinOnDateBehavior
Lors de la jointure de deux colonnes de date/heure, indique s’il faut faire la jointure sur les parties date et heure, ou seulement sur la partie date.

  • DateAndTime (1) : lorsque vous joignez deux colonnes de date et heure, joignez les parties date et heure.

  • DatePartOnly (2) : lors de la jointure de deux colonnes de date et heure, joignez la partie date uniquement.

relyOnReferentialIntegrity
Inutilisé ; réservé à un usage ultérieur.

securityFilteringBehavior
Énumération qui indique comment les relations influencent le filtrage des données lors de l’évaluation des expressions de sécurité au niveau des lignes. Les valeurs valides sont les suivantes :

  • OneDirection (1) : les lignes sélectionnées à la fin « À » de la relation filtrent automatiquement les analyses de la table à l’extrémité « From » de la relation.

  • BothDirections (2) : les filtres à chaque extrémité de la relation filtrent automatiquement l’autre table.

Utilisation

Les objets de relation sont utilisés dans la commande Alter (TMSL),la commande Create (TMSL),la commande CreateOrReplace (TMSL) et la commande Delete (TMSL).

Lors de la création, du remplacement ou de la modification d’un objet de relation, spécifiez toutes les propriétés en lecture-écriture de la définition de l’objet. L’omission d’une propriété en lecture-écriture est considérée comme une suppression.

Syntaxe complète

Voici la représentation de schéma d’un objet de relation.

"relationships": {  
          "type": "array",  
          "items": {  
            "anyOf": [  
              {  
                "description": "SingleColumnRelationship object of Tabular Object Model (TOM)",  
                "type": "object",  
                "properties": {  
                  "name": {  
                    "type": "string"  
                  },  
                  "isActive": {  
                    "type": "boolean"  
                  },  
                  "type": {  
                    "enum": [  
                      "singleColumn"  
                    ]  
                  },  
                  "crossFilteringBehavior": {  
                    "enum": [  
                      "oneDirection",  
                      "bothDirections",  
                      "automatic"  
                    ]  
                  },  
                  "joinOnDateBehavior": {  
                    "enum": [  
                      "dateAndTime",  
                      "datePartOnly"  
                    ]  
                  },  
                  "relyOnReferentialIntegrity": {  
                    "type": "boolean"  
                  },  
                  "securityFilteringBehavior": {  
                    "enum": [  
                      "oneDirection",  
                      "bothDirections"  
                    ]  
                  },  
                  "fromCardinality": {  
                    "enum": [  
                      "none",  
                      "one",  
                      "many"  
                    ]  
                  },  
                  "toCardinality": {  
                    "enum": [  
                      "none",  
                      "one",  
                      "many"  
                    ]  
                  },  
                  "fromColumn": {  
                    "type": "string"  
                  },  
                  "fromTable": {  
                    "type": "string"  
                  },  
                  "toColumn": {  
                    "type": "string"  
                  },  
                  "toTable": {  
                    "type": "string"  
                  },  
                  "annotations": {  
                    "type": "array",  
                    "items": {  
                      "description": "Annotation object of Tabular Object Model (TOM)",  
                      "type": "object",  
                      "properties": {  
                        "name": {  
                          "type": "string"  
                        },  
                        "value": {  
                          "anyOf": [  
                            {  
                              "type": "string"  
                            },  
                            {  
                              "type": "array",  
                              "items": {  
                                "type": "string"  
                              }  
                            }  
                          ]  
                        }  
                      },  
                      "additionalProperties": false  
                    }  
                  }  
                },  
                "additionalProperties": false  
              }  
            ]  
          }  
        }