ALTER CONTRACT
Enterprise command reference.
Command Snapshot
| Field | Value |
|---|---|
| Category | Platform Extensions |
| Mutates Data | Yes/Depends |
| Scope | Cluster / Object |
| Privilege Model | Requires administrative or feature-specific governance/cluster privileges. |
Purpose
Defines, changes, or removes schema and metadata objects.
Syntax
ALTER CONTRACT [IF EXISTS] contract_name SET (...)
ALTER CONTRACT [IF EXISTS] contract_name BIND TO TABLE schema.table [COLUMN column_name]
ALTER CONTRACT [IF EXISTS] contract_name UNBIND
Operational Notes
- Use schema-qualified identifiers in automation and automation pipelines.
- Validate behavior in staging for cluster-impacting or governance-impacting changes.
- Confirm runtime effects through system tables and metrics before and after execution.
When to Use
- Use for graph, memory, governance, and licensing lifecycle management.
- Use when feature-specific metadata and policy controls are required.
When Not to Use
- Avoid enabling strict enforcement modes before validation and staged verification.
Common Errors and Troubleshooting
| Symptom | Likely Cause | Action |
|---|---|---|
| Permission denied / unauthorized | Missing privilege on object or cluster scope | Re-run with required grants or elevated admin role. |
| Analysis/parse error | Syntax variant or object shape mismatch | Compare with canonical syntax and object definition. |
| Runtime failure under load | Resource limits, breaker pressure, or node state transitions | Check sys.jobs, sys.operations, sys.checks, and retry after mitigation. |
Cross-References
Detailed Reference
Updates contract properties or rebinds/unbinds contract targets.
SQL Statement
ALTER CONTRACT [IF EXISTS] contract_name SET (...)
ALTER CONTRACT [IF EXISTS] contract_name BIND TO TABLE schema.table [COLUMN column_name]
ALTER CONTRACT [IF EXISTS] contract_name UNBIND
Parameters
contract_name: Existing contract identifier.SET (...): Property updates (version,severity,expression,mode).BIND TO TABLE ...: Re-associate contract to a target.UNBIND: Remove current table/column binding.
Privileges
Requires governance/administrative DDL privilege.
Examples
ALTER CONTRACT users_email_format SET (mode = 'enforce', version = 2);
ALTER CONTRACT users_email_format UNBIND;
ALTER CONTRACT users_email_format BIND TO TABLE doc.users_contract COLUMN email;
Notes
- Changing to
mode = 'enforce'should follow successfulVALIDATE TABLEruns. - Use
IF EXISTSfor idempotent deployment scripts.