@startuml
left to right direction
'top to bottom direction
hide circle
'avoide "." issues:
set namespaceSeparator none


skinparam class {
  BackgroundColor White
  BackgroundColor<<FN>> Yellow
  BackgroundColor<<FS>> Yellow
  BackgroundColor<<FT>> LightGray
  BackgroundColor<<IF>> Yellow
  BackgroundColor<<IS>> Yellow
  BackgroundColor<<P>> Aqua
  BackgroundColor<<PC>> Aqua
  BackgroundColor<<SN>> Yellow
  BackgroundColor<<SO>> SlateBlue
  BackgroundColor<<TF>> LightGray
  BackgroundColor<<TR>> Tomato
  BackgroundColor<<U>> White
  BackgroundColor<<V>> WhiteSmoke
  BackgroundColor<<X>> Aqua
}


entity "puml-link:docs.RepoObject_Adoc.adoc[prefix=..]" as docs.RepoObject_Adoc << V >> {
  --
  - AdocContent : (nvarchar(max))
  is_DocsOutput : (int)
  PropertyCount : (int)
  RepoObject_fullname : (nvarchar(261))
  RepoObject_fullname2 : (nvarchar(257))
  - RepoObject_guid : (uniqueidentifier)
  RepoObject_schema_name : (nvarchar(128))
  SysObject_fullname : (nvarchar(261))
  SysObject_fullname2 : (nvarchar(257))
  SysObject_schema_name : (nvarchar(128))
  SysObject_type : (char(2))
  SysObject_type_name : (nvarchar(128))
  --
  --
}

entity "puml-link:property.ExtendedProperty_Repo2Sys_level1.adoc[prefix=..]" as property.ExtendedProperty_Repo2Sys_level1 << V >> {
  - **level0type** : (nvarchar(6))
  - **level0name** : (nvarchar(128))
  **level1type** : (varchar(9))
  - **level1name** : (nvarchar(128))
  - **property_name** : (nvarchar(128))
  --
  level2name : (varchar(128))
  level2type : (varchar(10))
  property_value : (nvarchar(4000))
  - RepoObject_guid : (uniqueidentifier)
  - RepoObject_type : (char(2))
  --
  --
}

entity "puml-link:property.ExtendedProperty_Repo2Sys_level2_RepoObject.adoc[prefix=..]" as property.ExtendedProperty_Repo2Sys_level2_RepoObject << V >> {
  - **level0type** : (nvarchar(6))
  - **level0name** : (nvarchar(128))
  **level1type** : (varchar(9))
  - **level1name** : (nvarchar(128))
  **level2type** : (varchar(10))
  - **level2name** : (nvarchar(128))
  - **property_name** : (nvarchar(128))
  --
  - parent_RepoObject_guid : (uniqueidentifier)
  - parent_RepoObject_type : (char(2))
  property_value : (nvarchar(4000))
  - RepoObject_guid : (uniqueidentifier)
  - RepoObject_type : (char(2))
  --
  --
}

entity "puml-link:property.fs_get_RepoObjectProperty_nvarchar.adoc[prefix=..]" as property.fs_get_RepoObjectProperty_nvarchar << FN >> {
  --
  --
  --
}

entity "puml-link:property.PropertyName_RepoObject.adoc[prefix=..]" as property.PropertyName_RepoObject << V >> {
  **property_name** : (nvarchar(128))
  --
  --
  --
}

entity "puml-link:property.RepoObjectProperty.adoc[prefix=..]" as property.RepoObjectProperty << U >> {
  - **RepoObjectProperty_id** : (int)
  --
  inheritance : (tinyint)
  - property_name : (nvarchar(128))
  property_value : (nvarchar(max))
  - RepoObject_guid : (uniqueidentifier)
  ~ property_bigint : (bigint)
  ~ property_float : (float)
  ~ property_int : (int)
  ~ property_money : (money)
  ~ property_real : (real)
  --
  --
}

entity "puml-link:property.RepoObjectProperty_ForUpdate.adoc[prefix=..]" as property.RepoObjectProperty_ForUpdate << V >> {
  --
  inheritance : (tinyint)
  - property_name : (nvarchar(128))
  property_value : (nvarchar(max))
  - RepoObject_fullname : (nvarchar(261))
  - RepoObject_fullname2 : (nvarchar(257))
  - RepoObject_guid : (uniqueidentifier)
  - RepoObject_name : (nvarchar(128))
  - RepoObject_schema_name : (nvarchar(128))
  - RepoObject_type : (char(2))
  - RepoObjectProperty_id : (int)
  --
  --
}

entity "puml-link:property.RepoObjectProperty_InheritanceType_InheritanceDefinition.adoc[prefix=..]" as property.RepoObjectProperty_InheritanceType_InheritanceDefinition << V >> {
  - **RepoObject_guid** : (uniqueidentifier)
  - **property_name** : (nvarchar(128))
  --
  Inheritance_StringAggSeparatorSql : (nvarchar(max))
  InheritanceDefinition : (nvarchar(max))
  InheritanceType : (int)
  par_Inheritance_StringAggSeparatorSql : (nvarchar(max))
  par_InheritanceDefintion : (nvarchar(max))
  par_InheritanceType : (int)
  property_value : (nvarchar(max))
  - RepoObject_fullname : (nvarchar(261))
  - RepoObject_type : (char(2))
  ro_Inheritance_StringAggSeparatorSql : (nvarchar(4000))
  ro_InheritanceDefinition : (nvarchar(4000))
  ro_InheritanceType : (tinyint)
  sub_Inheritance_StringAggSeparatorSql : (nvarchar(max))
  sub_InheritanceDefintion : (nvarchar(max))
  sub_InheritanceType : (int)
  --
  --
}

entity "puml-link:property.RepoObjectProperty_sys_repo.adoc[prefix=..]" as property.RepoObjectProperty_sys_repo << V >> {
  - **RepoObject_guid** : (uniqueidentifier)
  - **property_name** : (sysname)
  --
  property_value : (sql_variant)
  RepoObjectProperty_id : (int)
  RepoObjectProperty_property_value : (nvarchar(max))
  SysObject_name : (nvarchar(128))
  SysObject_schema_name : (nvarchar(128))
  --
  --
}

entity "puml-link:property.usp_RepoObject_Inheritance.adoc[prefix=..]" as property.usp_RepoObject_Inheritance << P >> {
  --
  --
  --
}

entity "puml-link:property.usp_RepoObjectProperty_collect.adoc[prefix=..]" as property.usp_RepoObjectProperty_collect << P >> {
  --
  --
  --
}

entity "puml-link:property.usp_RepoObjectProperty_set.adoc[prefix=..]" as property.usp_RepoObjectProperty_set << P >> {
  --
  --
  --
}

entity "puml-link:property.usp_sync_ExtendedProperties_Sys2Repo_InsertUpdate.adoc[prefix=..]" as property.usp_sync_ExtendedProperties_Sys2Repo_InsertUpdate << P >> {
  --
  --
  --
}

property.RepoObjectProperty <.. property.RepoObjectProperty_sys_repo
property.RepoObjectProperty <.. property.ExtendedProperty_Repo2Sys_level1
property.RepoObjectProperty <.. property.ExtendedProperty_Repo2Sys_level2_RepoObject
property.RepoObjectProperty <.. property.usp_sync_ExtendedProperties_Sys2Repo_InsertUpdate
property.RepoObjectProperty <.. property.PropertyName_RepoObject
property.RepoObjectProperty <.. property.usp_RepoObject_Inheritance
property.RepoObjectProperty <.. property.RepoObjectProperty_InheritanceType_InheritanceDefinition
property.RepoObjectProperty <.. property.fs_get_RepoObjectProperty_nvarchar
property.RepoObjectProperty <.. docs.RepoObject_Adoc
property.RepoObjectProperty <.. property.usp_RepoObjectProperty_set
property.RepoObjectProperty <.. property.usp_RepoObjectProperty_collect
property.RepoObjectProperty <.. property.RepoObjectProperty_ForUpdate
property.RepoObjectProperty::inheritance <-- property.RepoObjectProperty_ForUpdate::inheritance
property.RepoObjectProperty::property_name <-- property.ExtendedProperty_Repo2Sys_level1::property_name
property.RepoObjectProperty::property_name <-- property.ExtendedProperty_Repo2Sys_level2_RepoObject::property_name
property.RepoObjectProperty::property_name <-- property.RepoObjectProperty_ForUpdate::property_name
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty::property_int
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty::property_bigint
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty::property_real
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty::property_float
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty::property_money
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty_InheritanceType_InheritanceDefinition::property_value
property.RepoObjectProperty::property_value <-- property.RepoObjectProperty_ForUpdate::property_value
property.RepoObjectProperty::RepoObject_guid <-- property.ExtendedProperty_Repo2Sys_level1::RepoObject_guid
property.RepoObjectProperty::RepoObject_guid <-- property.ExtendedProperty_Repo2Sys_level2_RepoObject::RepoObject_guid
property.RepoObjectProperty::RepoObject_guid <-- property.RepoObjectProperty_ForUpdate::RepoObject_guid
property.RepoObjectProperty::RepoObjectProperty_id <-- property.RepoObjectProperty_ForUpdate::RepoObjectProperty_id
footer
to view a reduced diagram in original size and to be able to click on the links:
open the diagram in a new tab via the Context menu.
end footer

@enduml

