TableOperations Classe

Spazio dei nomi per le operazioni sui metadati a livello di tabella.

Accesso tramite client.tables. Fornisce operazioni per creare, eliminare, esaminare ed elencare tabelle dataverse, nonché aggiungere e rimuovere colonne.

Esempio:


   client = DataverseClient(base_url, credential)

   # Create a table
   info = client.tables.create(
       "new_Product",
       {"new_Price": "decimal", "new_InStock": "bool"},
       solution="MySolution",
   )

   # List tables
   tables = client.tables.list()

   # Get table info
   info = client.tables.get("new_Product")

   # Add columns
   client.tables.add_columns("new_Product", {"new_Rating": "int"})

   # Remove columns
   client.tables.remove_columns("new_Product", "new_Rating")

   # Delete a table
   client.tables.delete("new_Product")

Costruttore

TableOperations(client: DataverseClient)

Parametri

Nome Descrizione
client
Necessario

Istanza padre DataverseClient .

Metodi

add_columns

Aggiungere una o più colonne a una tabella esistente.

Esempio:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
create

Creare una tabella personalizzata con le colonne specificate.

create_alternate_key

Creare una chiave alternativa in una tabella.

Le chiavi alternative consentono alle operazioni upsert di identificare i record in base a una o più colonne anziché al GUID primario. Dopo la creazione, la chiave viene accodata per la compilazione dell'indice; status passa da "Pending" a "Active" una volta che l'indice è pronto.

create_lookup_field

Creare una relazione di campo di ricerca semplice.

Si tratta di un metodo pratico che esegue create_one_to_many_relationship il wrapping per il caso comune di aggiunta di un campo di ricerca a una tabella esistente.

create_many_to_many_relationship

Creare una relazione molti-a-molti tra tabelle.

Questa operazione crea una relazione molti-a-molti e una tabella interseca per gestire la relazione.

create_one_to_many_relationship

Creare una relazione uno-a-molti tra tabelle.

Questa operazione crea sia la relazione che l'attributo di ricerca nella tabella di riferimento.

delete

Eliminare una tabella personalizzata in base al nome dello schema.

Avviso

Questa operazione è irreversibile e eliminerà tutti i record nel

tabella insieme alla definizione della tabella.

Esempio:


   client.tables.delete("new_MyTestTable")
delete_alternate_key

Eliminare una chiave alternativa in base all'ID dei metadati.

Avviso

L'eliminazione di una chiave alternativa usata dalle operazioni upsert

causa l'esito negativo di tali operazioni. questa operazione è irreversibile.

Esempio:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_relationship

Eliminare una relazione in base al relativo ID metadati.

Avviso

L'eliminazione di una relazione rimuove anche l'attributo di ricerca associato

per le relazioni uno-a-molti. questa operazione è irreversibile.

Esempio:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
get

Ottenere i metadati di base per una tabella, se esistente.

Esempio:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get_alternate_keys

Elencare tutte le chiavi alternative definite in una tabella.

get_relationship

Recuperare i metadati della relazione in base al nome dello schema.

Esempio:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
list

Elencare tutte le tabelle non private nell'ambiente Dataverse.

Per impostazione predefinita, restituisce ogni tabella in cui IsPrivate eq false. Fornire un'espressione OData $filter facoltativa per restringere ulteriormente i risultati. L'espressione viene combinata con la clausola predefinita IsPrivate eq false usando and.

Esempio:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list_columns

Elencare tutte le definizioni di attributo (colonna) per una tabella.

Esempio:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_relationships

Elencare tutte le definizioni di relazione nell'ambiente.

Esempio:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_table_relationships

Elencare tutte le relazioni per una tabella specifica.

Combina relazioni uno-a-molti, molti-a-uno e molti-a-molti per la tabella specificata eseguendo EntityDefinitions({id})/OneToManyRelationshipsquery su , EntityDefinitions({id})/ManyToOneRelationshipse EntityDefinitions({id})/ManyToManyRelationships.

Esempio:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
remove_columns

Rimuovere una o più colonne da una tabella.

Esempio:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']

add_columns

Aggiungere una o più colonne a una tabella esistente.

Esempio:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
add_columns(table: str, columns: Dict[str, Any]) -> List[str]

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_MyTestTable".

columns
Necessario

Mapping dei nomi degli schemi di colonna (con prefisso di personalizzazione) ai relativi tipi. I tipi supportati sono uguali a per create.

Valori restituiti

Tipo Descrizione

Nomi di schema delle colonne create.

Eccezioni

Tipo Descrizione

Se la tabella non esiste.

create

Creare una tabella personalizzata con le colonne specificate.

create(table: str, columns: Dict[str, Any], *, solution: str | None = None, primary_column: str | None = None, display_name: str | None = None) -> TableInfo

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella con prefisso di personalizzazione ,ad esempio "new_MyTestTable".

columns
Necessario

Mapping dei nomi degli schemi di colonna (con prefisso di personalizzazione) ai relativi tipi. I tipi supportati includono "string" (o "text") "memo" (o "multiline") "int" (o "integer") "decimal" (o "money") "float" (o "double") "datetime" (o ) (o "date"), "bool" (o "boolean"), "file"e Enum sottoclassi (per i set di opzioni locali).

solution
Necessario
str

Nome univoco della soluzione facoltativo proprietario della nuova tabella. Quando viene omessa la tabella viene creata nella soluzione predefinita.

primary_column
Necessario
str

Nome primario facoltativo dello schema della colonna con prefisso di personalizzazione (ad esempio "new_ProductName"). Se non specificato, il valore predefinito è "{prefix}_Name".

display_name
Necessario
str

Nome visualizzato leggibile per la tabella ,ad esempio "Product". Se omesso, per impostazione predefinita viene impostato il nome dello schema della tabella.

Parametri di sole parole chiave

Nome Descrizione
solution
Valore predefinito: None
primary_column
Valore predefinito: None
display_name
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Metadati della tabella con schema_name, entity_set_namelogical_name, metadata_id, e columns_created. Supporta l'accesso simile act con chiavi legacy per garantire la compatibilità con le versioni precedenti.

Eccezioni

Tipo Descrizione

Se la creazione della tabella non riesce o la tabella esiste già.

Esempio

Creare una tabella con colonne semplici:


   from enum import IntEnum

   class ItemStatus(IntEnum):
       ACTIVE = 1
       INACTIVE = 2

   result = client.tables.create(
       "new_Product",
       {
           "new_Title": "string",
           "new_Price": "decimal",
           "new_Status": ItemStatus,
       },
       solution="MySolution",
       primary_column="new_ProductName",
       display_name="Product",
   )
   print(f"Created: {result['table_schema_name']}")

create_alternate_key

Creare una chiave alternativa in una tabella.

Le chiavi alternative consentono alle operazioni upsert di identificare i record in base a una o più colonne anziché al GUID primario. Dopo la creazione, la chiave viene accodata per la compilazione dell'indice; status passa da "Pending" a "Active" una volta che l'indice è pronto.

create_alternate_key(table: str, key_name: str, columns: List[str], *, display_name: str | None = None, language_code: int = 1033) -> AlternateKeyInfo

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_Product".

key_name
Necessario
str

Nome dello schema per la nuova chiave alternativa , ad esempio "new_product_code_key".

columns
Necessario

Elenco di nomi logici di colonna che compongono la chiave ,ad esempio ["new_productcode"].

display_name
Necessario
str

Nome visualizzato per la chiave. Il valore predefinito è se key_name non specificato.

language_code
Necessario
int

Codice lingua per le etichette. Il valore predefinito è 1033 (inglese).

Parametri di sole parole chiave

Nome Descrizione
display_name
Valore predefinito: None
language_code
Valore predefinito: 1033

Valori restituiti

Tipo Descrizione

Metadati per la chiave alternativa appena creata.

Eccezioni

Tipo Descrizione

Se la tabella non esiste.

Se la richiesta dell'API Web ha esito negativo.

Esempio

Creare una chiave alternativa a colonna singola per upsert:


   key = client.tables.create_alternate_key(
       "new_Product",
       "new_product_code_key",
       ["new_productcode"],
       display_name="Product Code",
   )
   print(f"Key ID: {key.metadata_id}")
   print(f"Columns: {key.key_attributes}")

create_lookup_field

Creare una relazione di campo di ricerca semplice.

Si tratta di un metodo pratico che esegue create_one_to_many_relationship il wrapping per il caso comune di aggiunta di un campo di ricerca a una tabella esistente.

create_lookup_field(referencing_table: str, lookup_field_name: str, referenced_table: str, *, display_name: str | None = None, description: str | None = None, required: bool = False, cascade_delete: str = 'RemoveLink', solution: str | None = None, language_code: int = 1033) -> RelationshipInfo

Parametri

Nome Descrizione
referencing_table
Necessario
str

Nome logico della tabella che avrà il campo di ricerca (tabella figlio).

lookup_field_name
Necessario
str

Nome dello schema per il campo di ricerca (ad esempio, "new_AccountId").

referenced_table
Necessario
str

Nome logico della tabella a cui si fa riferimento (tabella padre).

display_name
Necessario
str

Nome visualizzato per il campo di ricerca. Il valore predefinito è il nome della tabella a cui si fa riferimento.

description
Necessario
str

Descrizione facoltativa per il campo di ricerca.

required
Necessario

Indica se la ricerca è obbligatoria. Il valore predefinito è False.

cascade_delete
Necessario
str

Comportamento di eliminazione ("RemoveLink", "Cascade", "Restrict"). Il valore predefinito è "RemoveLink".

solution
Necessario
str

Nome univoco della soluzione facoltativo a cui aggiungere la relazione.

language_code
Necessario
int

Codice lingua per le etichette. Il valore predefinito è 1033 (inglese).

Parametri di sole parole chiave

Nome Descrizione
display_name
Valore predefinito: None
description
Valore predefinito: None
required
Valore predefinito: False
cascade_delete
Valore predefinito: RemoveLink
solution
Valore predefinito: None
language_code
Valore predefinito: 1033

Valori restituiti

Tipo Descrizione

Metadati delle relazioni con relationship_id, relationship_schema_namerelationship_type, lookup_schema_name, referenced_entity, e referencing_entity.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

Esempio

Creare un campo di ricerca semplice:


   result = client.tables.create_lookup_field(
       referencing_table="new_order",
       lookup_field_name="new_AccountId",
       referenced_table="account",
       display_name="Account",
       required=True,
       cascade_delete=CASCADE_BEHAVIOR_REMOVE_LINK,
   )
   print(f"Created lookup: {result.lookup_schema_name}")

create_many_to_many_relationship

Creare una relazione molti-a-molti tra tabelle.

Questa operazione crea una relazione molti-a-molti e una tabella interseca per gestire la relazione.

create_many_to_many_relationship(relationship: ManyToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parametri

Nome Descrizione
relationship
Necessario

Metadati che definiscono la relazione molti-a-molti.

solution
Necessario
str

Nome univoco della soluzione facoltativo a cui aggiungere la relazione.

Parametri di sole parole chiave

Nome Descrizione
solution
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Metadati delle relazioni con relationship_id, relationship_schema_namerelationship_type, entity1_logical_name, e entity2_logical_name.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

Esempio

Creare una relazione molti-a-molti: Employee <-> Project:


   from PowerPlatform.Dataverse.models import (
       ManyToManyRelationshipMetadata,
   )

   relationship = ManyToManyRelationshipMetadata(
       schema_name="new_employee_project",
       entity1_logical_name="new_employee",
       entity2_logical_name="new_project",
   )

   result = client.tables.create_many_to_many_relationship(relationship)
   print(f"Created: {result.relationship_schema_name}")

create_one_to_many_relationship

Creare una relazione uno-a-molti tra tabelle.

Questa operazione crea sia la relazione che l'attributo di ricerca nella tabella di riferimento.

create_one_to_many_relationship(lookup: LookupAttributeMetadata, relationship: OneToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parametri

Nome Descrizione
lookup
Necessario

Metadati che definiscono l'attributo di ricerca.

relationship
Necessario

Metadati che definiscono la relazione.

solution
Necessario
str

Nome univoco della soluzione facoltativo a cui aggiungere la relazione.

Parametri di sole parole chiave

Nome Descrizione
solution
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Metadati delle relazioni con relationship_id, relationship_schema_namerelationship_type, lookup_schema_name, referenced_entity, e referencing_entity.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

Esempio

Creare una relazione uno-a-molti: Reparto (1) -> Dipendente (N):


   from PowerPlatform.Dataverse.models import (
       LookupAttributeMetadata,
       OneToManyRelationshipMetadata,
       Label,
       LocalizedLabel,
       CascadeConfiguration,
   )
   from PowerPlatform.Dataverse.common.constants import (
       CASCADE_BEHAVIOR_REMOVE_LINK,
   )

   lookup = LookupAttributeMetadata(
       schema_name="new_DepartmentId",
       display_name=Label(
           localized_labels=[
               LocalizedLabel(label="Department", language_code=1033)
           ]
       ),
   )

   relationship = OneToManyRelationshipMetadata(
       schema_name="new_Department_Employee",
       referenced_entity="new_department",
       referencing_entity="new_employee",
       referenced_attribute="new_departmentid",
       cascade_configuration=CascadeConfiguration(
           delete=CASCADE_BEHAVIOR_REMOVE_LINK,
       ),
   )

   result = client.tables.create_one_to_many_relationship(lookup, relationship)
   print(f"Created lookup field: {result.lookup_schema_name}")

delete

Eliminare una tabella personalizzata in base al nome dello schema.

Avviso

Questa operazione è irreversibile e eliminerà tutti i record nel

tabella insieme alla definizione della tabella.

Esempio:


   client.tables.delete("new_MyTestTable")
delete(table: str) -> None

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_MyTestTable".

Eccezioni

Tipo Descrizione

Se la tabella non esiste o l'eliminazione non riesce.

delete_alternate_key

Eliminare una chiave alternativa in base all'ID dei metadati.

Avviso

L'eliminazione di una chiave alternativa usata dalle operazioni upsert

causa l'esito negativo di tali operazioni. questa operazione è irreversibile.

Esempio:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_alternate_key(table: str, key_id: str) -> None

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_Product".

key_id
Necessario
str

GUID dei metadati della chiave alternativa da eliminare.

Eccezioni

Tipo Descrizione

Se la tabella non esiste.

Se la richiesta dell'API Web ha esito negativo.

delete_relationship

Eliminare una relazione in base al relativo ID metadati.

Avviso

L'eliminazione di una relazione rimuove anche l'attributo di ricerca associato

per le relazioni uno-a-molti. questa operazione è irreversibile.

Esempio:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
delete_relationship(relationship_id: str) -> None

Parametri

Nome Descrizione
relationship_id
Necessario
str

GUID dei metadati della relazione.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

get

Ottenere i metadati di base per una tabella, se esistente.

Esempio:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get(table: str) -> TableInfo | None

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_MyTestTable" o "account".

Valori restituiti

Tipo Descrizione

Metadati della tabella o None se la tabella non viene trovata. Supporta l'accesso simile act con chiavi legacy per garantire la compatibilità con le versioni precedenti.

get_alternate_keys

Elencare tutte le chiavi alternative definite in una tabella.

get_alternate_keys(table: str) -> List[AlternateKeyInfo]

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_Product".

Valori restituiti

Tipo Descrizione

Elenco di oggetti metadati chiave alternativi. Può essere vuoto se non sono definite chiavi alternative.

Eccezioni

Tipo Descrizione

Se la tabella non esiste.

Se la richiesta dell'API Web ha esito negativo.

Esempio

Elencare le chiavi alternative e stamparne lo stato:


   keys = client.tables.get_alternate_keys("new_Product")
   for key in keys:
       print(f"{key.schema_name}: {key.status}")

get_relationship

Recuperare i metadati della relazione in base al nome dello schema.

Esempio:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
get_relationship(schema_name: str) -> RelationshipInfo | None

Parametri

Nome Descrizione
schema_name
Necessario
str

Nome dello schema della relazione.

Valori restituiti

Tipo Descrizione

Metadati della relazione o None se non sono stati trovati.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

list

Elencare tutte le tabelle non private nell'ambiente Dataverse.

Per impostazione predefinita, restituisce ogni tabella in cui IsPrivate eq false. Fornire un'espressione OData $filter facoltativa per restringere ulteriormente i risultati. L'espressione viene combinata con la clausola predefinita IsPrivate eq false usando and.

Esempio:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametri

Nome Descrizione
filter
Necessario
str

Espressione OData $filter facoltativa per restringere ulteriormente l'elenco delle tabelle restituite , ad esempio "SchemaName eq 'Account'". I nomi di colonna nelle espressioni di filtro devono usare i nomi esatti delle proprietà dei EntityDefinitions metadati (in genere PascalCase).

select
Necessario
list[str] oppure None

Elenco facoltativo di nomi di proprietà da includere nella risposta (proiettato tramite l'opzione di query OData $select ). I nomi delle proprietà devono usare i nomi PascalCase esatti dai EntityDefinitions metadati , ad esempio ["LogicalName", "SchemaName", "DisplayName"]. Quando None (impostazione predefinita) o un elenco vuoto, vengono restituite tutte le proprietà.

Parametri di sole parole chiave

Nome Descrizione
filter
Valore predefinito: None
select
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Elenco dei dizionari di metadati EntityDefinition.

list_columns

Elencare tutte le definizioni di attributo (colonna) per una tabella.

Esempio:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_columns(table: str, *, select: List[str] | None = None, filter: str | None = None) -> List[Dict[str, Any]]

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "account" o "new_Product".

select
Necessario
list[str] oppure None

Elenco facoltativo di nomi di proprietà da proiettare tramite $select. I valori vengono passati as-is (PascalCase).

filter
Necessario
str

Espressione OData $filter facoltativa. Ad esempio, restituisce "AttributeType eq 'String'" solo colonne stringa.

Parametri di sole parole chiave

Nome Descrizione
select
Valore predefinito: None
filter
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Elenco di dizionari di metadati di attributi non elaborati.

Eccezioni

Tipo Descrizione

Se la tabella non viene trovata.

Se la richiesta dell'API Web ha esito negativo.

list_relationships

Elencare tutte le definizioni di relazione nell'ambiente.

Esempio:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_relationships(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametri

Nome Descrizione
filter
Necessario
str

Espressione OData $filter facoltativa. Ad esempio, "RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'" restituisce solo relazioni uno-a-molti.

select
Necessario
list[str] oppure None

Elenco facoltativo di nomi di proprietà da proiettare tramite $select. I valori vengono passati as-is (PascalCase).

Parametri di sole parole chiave

Nome Descrizione
filter
Valore predefinito: None
select
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Elenco di dizionari di metadati delle relazioni non elaborate.

Eccezioni

Tipo Descrizione

Se la richiesta dell'API Web ha esito negativo.

list_table_relationships

Elencare tutte le relazioni per una tabella specifica.

Combina relazioni uno-a-molti, molti-a-uno e molti-a-molti per la tabella specificata eseguendo EntityDefinitions({id})/OneToManyRelationshipsquery su , EntityDefinitions({id})/ManyToOneRelationshipse EntityDefinitions({id})/ManyToManyRelationships.

Esempio:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
list_table_relationships(table: str, *, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "account".

filter
Necessario
str

Espressione OData $filter facoltativa applicata a ogni sotto-richiesta.

select
Necessario
list[str] oppure None

Elenco facoltativo di nomi di proprietà da proiettare tramite $select. I valori vengono passati as-is (PascalCase).

Parametri di sole parole chiave

Nome Descrizione
filter
Valore predefinito: None
select
Valore predefinito: None

Valori restituiti

Tipo Descrizione

Elenco combinato di dizionari di metadati delle relazioni uno-a-molti, molti-a-uno e molti-a-molti.

Eccezioni

Tipo Descrizione

Se la tabella non viene trovata.

Se la richiesta dell'API Web ha esito negativo.

remove_columns

Rimuovere una o più colonne da una tabella.

Esempio:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']
remove_columns(table: str, columns: str | List[str]) -> List[str]

Parametri

Nome Descrizione
table
Necessario
str

Nome dello schema della tabella ,ad esempio "new_MyTestTable".

columns
Necessario
str oppure list[str]

Nome dello schema di colonna o elenco di nomi di schema di colonna da rimuovere. Deve includere il prefisso di personalizzazione ,ad esempio "new_TestColumn".

Valori restituiti

Tipo Descrizione

Nomi di schema delle colonne rimosse.

Eccezioni

Tipo Descrizione

Se la tabella o una colonna specificata non esiste.