Relationships 对象 (TMSL)

适用于:SQL Server 2016 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

定义源表与目标表之间的关系,并能够指定基数,以及查询和安全筛选器的方向。

对象定义

所有对象都有一组通用的属性,包括名称、类型、说明、属性集合和注释。 关系 对象还具有以下属性。

isActive
一个布尔值,指示关系是标记为“活动”还是“非活动”。 活动关系自动用于跨表筛选。 非活动关系可通过 USERELATIONSHIP 函数显式用于 DAX 计算。

**crossFilteringBehavior ** 指示关系如何影响数据筛选。 有效值为:

  • OneDirection (1) - 在关系的“To”末尾选择的行将自动筛选关系“From”末尾的表扫描。

  • BothDirections (2) - 关系两端的筛选器将自动筛选另一个表。

  • 自动 (3) - 引擎将分析关系,并使用启发法选择其中一种行为。

joinOnDateBehavior
在联接两个日期时间列时,指示是联接日期和时间部分还是仅联接日期部分。

  • DateAndTime (1) - 联接两个日期时间列时,联接日期和时间部分。

  • DatePartOnly (2) - 联接两个日期时间列时,仅联接日期部分。

relyOnReferentialIntegrity
未使用;保留供将来使用。

securityFilteringBehavior
一个枚举,指示在计算行级别安全表达式时关系如何影响数据筛选。 以下是有效值:

  • OneDirection (1) - 在关系的“To”末尾选择的行将自动筛选关系“From”末尾的表扫描。

  • BothDirections (2) - 关系两端的筛选器将自动筛选另一个表。

使用情况

关系对象用于 alter 命令 (TMSL) Create 命令 (TMSL) CreateOrReplace 命令 (TMSL) Delete 命令 (TMSL)

创建、替换或更改关系对象时,请指定对象定义的所有读写属性。 省略读写属性被视为删除。

完整语法

下面是关系对象的架构表示形式。

"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  
              }  
            ]  
          }  
        }