适用于:
 Databricks SQL 
 Databricks Runtime 10.4 LTS 及更高版本 
 仅 Unity Catalog
向/从共享添加、修改或删除架构、表、具体化视图或视图。 重命名共享。 将共享的所有权转移到新的主体。
所需的权限:
- 若要更新共享所有者,你必须是元存储管理员。
 - 若要更新共享名称,你必须是具有 
CREATE SHARE特权 和 共享所有者的用户。 - 若要添加表或视图,您必须是共享对象的所有者、对包含表或视图的架构具有 
USE SCHEMA,并且对表或视图具有SELECT权限。 必须拥有SELECT权限才能共享表或视图。 - 若要更新任何其他共享属性,你必须是所有者。
 
语法
ALTER SHARE share_name
  { alter_add_materialized_view |
    REMOVE MATERIALIZED VIEW mat_view_name |
    alter_add_table |
    REMOVE TABLE table_name |
    alter_add_schema |
    REMOVE SCHEMA schema_name |
    alter_add_view |
    REMOVE VIEW view_name |
    alter_add_model |
    REMOVE MODEL model_name |
    RENAME TO to_share_name |
    [ SET ] OWNER TO principal }
alter_add_materialized_view
  { { ALTER | ADD } MATERIALIZED VIEW mat_view_name [ COMMENT comment ] [ AS mat_view_share_name ]
alter_add_table
  { { ALTER | ADD } [ TABLE ] table_name [ COMMENT comment ]
        [ PARTITION clause ] [ AS table_share_name ]
        [ WITH HISTORY | WITHOUT HISTORY ] }
alter_add_schema
  { { ALTER | ADD } SCHEMA schema_name [ COMMENT comment ]
alter_add_view
  { { ALTER | ADD } VIEW view_name [ COMMENT comment ] [ AS view_share_name ]
alter_add_model
  { { ALTER | ADD } VIEW model_name [ COMMENT comment ] [ AS model_share_name ]
注意
              WITH HISTORY | WITHOUT HISTORY Databricks Runtime 12.2 LTS 及更高版本支持 
。 Databricks Runtime 版本 11.1 至 12.0 要求指定 WITH CHANGE DATA FEED [ START VERSION version ] 而不是 WITH HISTORY。 在 Databricks SQL 和 Databricks Runtime 16.2 及更高版本上, WITH HISTORY 是默认值。
              WITH CHANGE DATA FEED 已弃用。
另请注意,如果除了执行按时间顺序查询和流式读取之外,你还希望客户能够使用 table_changes() 函数查询表的更改数据馈送 (CDF),则必须在共享表其  (或 WITH HISTORY)之前WITH CHANGE DATA FEED。
参数
- 
要更改的共享的名称。
 alter_add_materialized_view适用于:
 Databricks SQL 
 Databricks Runtime 13.3 LTS 及更高版本将具体化视图添加到共享或修改现有共享具体化视图。 要运行此语句,你必须是共享的所有者且拥有该具体化视图的
SELECT特权。ADD MATERIALIZED VIEWmat_view_name标识要添加的具体化视图。 如果找不到具体化视图,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
ALTER MATERIALIZED VIEWmat_view_name标识要更改的具体化视图。 如果具体化视图还不是共享的一部分,则 Azure Databricks 会引发错误。
COMMENT comment附加到具体化视图共享的可选
STRING文本,作为注释。- 
(可选)以其他名称公开具体化视图。 可以使用架构名称限定该名称。 如果没有指定
mat_view_share_name,则具体化视图会以其自己的名称显示。如果共享名称已存在,则 Azure Databricks 会引发错误。
 REMOVE MATERIALIZED VIEWmat_view_name适用于:
 Databricks SQL 
 Databricks Runtime 13.3 LTS 及更高版本从共享中删除由
mat_view_name标识的具体化视图。 要运行此语句,你必须是共享的所有者。alter_add_table将整张表或其中的一部分添加到共享,或修改现有的共享表。 要运行此语句,你必须是共享的所有者且拥有该表的
SELECT权限。ADD [ TABLE ]table_name标识要添加的表。 表不得位于 Unity Catalog 中。 如果找不到表,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
ALTER [ TABLE ]table_name标识要修改的表。 如果表还不是共享的一部分,则 Azure Databricks 会出现错误。
COMMENT comment附加到表的可选
STRING文本作为注释共享。- 
要添加的表的一个或多个分区。 分区键必须与表的分区匹配,并且必须与值关联。 如果不存在
PARTITION clause,则ADD TABLE会添加整个表。若要按对接收者属性的引用进行分区,请使用以下语法:
PARTITION (column_name = CURRENT_RECIPIENT().<property-key>)按对收件人属性的引用进行分区 适用于:
Databricks SQL
 Databricks Runtime 12.2 LTS 及更高版本。 - 
(可选)以其他名称公开表。 可以使用数据库(架构)名称限定该名称。 如果没有指定
table_share_name,则该表将以其自己的名称显示。 WITH HISTORY或WITHOUT HISTORY适用于:
 Databricks SQL 
 Databricks Runtime 12.2 LTS 及更高版本.当指定
WITH HISTORY时,共享具有完整历史记录的表,允许接收者执行按时间顺序查看查询。 然后可以使用 VERSION AS OF 和 TIMESTAMP AS OF 引用共享表。如果除了执行时间旅行查询和流式读取之外,你还希望客户能够使用 table_changes() 函数查询表的更改数据源 (CDF),则必须在共享表的 之前
WITH HISTORY。Databricks SQL 和 Databricks Runtime 16.2 及更高版本的默认行为是
WITH HISTORY。 在 Databricks Runtime 16.1 及更低版本上,它是WITHOUT HISTORY。
REMOVE TABLEtable_name从共享中删除由
table_name标识的表。 要运行此语句,你必须是共享的所有者。alter_add_schema适用于:
 Databricks SQL 
 Databricks Runtime 13.3 LTS 及更高版本将架构添加到共享或修改现有共享架构。 要运行此语句,你必须是共享和架构的所有者。
ADD SCHEMAschema_name标识要添加的架构。 如果找不到架构,Azure Databricks 会引发 SCHEMA_NOT_FOUND 错误。
ALTER SCHEMAschema_name标识要更改的架构。 如果架构还不是共享的一部分,则 Azure Databricks 会出现错误。
COMMENT comment作为注释附加到架构共享的可选
STRING文本。
REMOVE SCHEMAschema_name从共享中删除由
schema_name标识的架构。 要运行此语句,你必须是共享的所有者。alter_add_view适用于:
 Databricks SQL 
 Databricks Runtime 13.3 LTS 及更高版本将视图添加到共享或修改现有共享视图。 要运行此语句,你必须是共享的所有者且拥有该视图的
SELECT权限。ADD VIEWview_name标识要添加的视图。 如果找不到视图,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
ALTER VIEWview_name标识要更改的视图。 如果视图还不是共享的一部分,则 Azure Databricks 会出现错误。
COMMENT comment附加到视图的可选
STRING文本作为注释共享。- 
(可选)以其他名称公开视图。 可以使用架构名称限定该名称。 如果没有指定
view_share_name,则视图以其自己的名称显示。如果共享名称已存在,则 Azure Databricks 会引发错误。
 
REMOVE VIEW视图名称从共享中删除由
view_name标识的视图。 要运行此语句,你必须是共享的所有者。alter_add_model适用于:Databricks SQL 勾选“是” Databricks Runtime 14.0 及更高版本check marked yes
将模型添加到共享或修改现有共享模型。 要运行此语句,你必须是共享的所有者且拥有该模型的
EXECUTE权限。ADD MODELmodel_name标识要添加的模型。 如果找不到模型,Azure Databricks 将引发 RESOURCE_DOES_NOT_EXIST 错误。
ALTER MODELmodel_name标识要更改的模型。 如果模型还不是共享的一部分,则 Azure Databricks 会引发错误。
COMMENT comment可选的
STRING文本作为注释附加到模型共享。- 
(可选)以其他名称公开模型。 可以使用架构名称限定该名称。 如果没有指定
model_share_name,则该模型会以自己的名称显示。如果共享名称已存在,则 Azure Databricks 会引发错误。
 
REMOVE MODELmodel_name从共享中删除由
model_name标识的模型。 要运行此语句,你必须是共享的所有者。RENAME TOto_share_name适用于:
 Databricks SQL 
 Databricks Runtime 11.3 LTS 及更高版本重命名共享。 该名称在元存储中的所有共享中必须是唯一的。 要运行此语句,你必须是共享的所有者且拥有元存储的
CREATE SHARE权限。[ SET ] OWNER TO校长将共享的所有权转移给
principal。 要运行此语句,你必须是共享的所有者。适用于:
 Databricks SQL 
 Databricks Runtime 11.3 LTS 及更高版本允许使用
SET作为可选关键字。
示例
-- Creates a share named `some_share`.
> CREATE SHARE some_share;
-- Add a table to the share.
> ALTER SHARE some_share
     ADD TABLE my_schema.my_tab
         COMMENT 'some comment'
         PARTITION(c1_int = 5, c2_date LIKE '2021%')
         AS shared_schema.shared_tab;
-- Add a schema to the share.
> ALTER SHARE some_share
     ADD SCHEMA some_schema
         COMMENT 'some comment';
-- Add a view to the share.
> ALTER SHARE some_share
     ADD VIEW my_schema.my_view
         COMMENT 'some comment'
         AS shared_schema.shared_view;
-- Add a materialized view to the share.
> ALTER SHARE some_share
     ADD MATERIALIZED VIEW my_schema.my_mat_view
         COMMENT 'some comment'
         AS shared_schema.shared_mat_view;
-- Share a table with history
> ALTER SHARE share ADD TABLE table1 WITH HISTORY;
> ALTER SHARE share ADD TABLE table2 WITHOUT HISTORY;
> SHOW ALL IN SHARE share;
  Name    type   ... history_sharing  ...
  ------  ------ ... ----------------
  Table1  TABLE  ... ENABLED          ...
  Table2  TABLE  ... DISABLED         ...
-- Remove the table again
> ALTER SHARE some_share
    REMOVE TABLE shared_schema.shared_tab;
-- Remove the schema again
> ALTER SHARE some_share
    REMOVE SCHEMA some_schema;
-- Remove a view again
> ALTER SHARE some_share
    REMOVE VIEW shared_schema.shared_view;
-- Rename a share
> ALTER SHARE some_share
    RENAME TO new_share;
-- Change ownership of the share
> ALTER SHARE some_share
    OWNER TO `alf@melmak.et`