ALTER MODEL¶
Modifica as propriedades de um modelo existente, incluindo nome, tags, versão padrão ou comentário.
Existem três outras variantes deste comando, a saber:
ALTER MODEL … ADD VERSION adiciona uma nova versão de um modelo.
ALTER MODEL … DROP VERSION remove uma versão de um modelo.
ALTER MODEL … MODIFY VERSION define o comentário ou metadados de uma versão do modelo.
Sintaxe¶
ALTER MODEL [ IF EXISTS ] <name> SET
[ COMMENT = '<string_literal>' ]
[ DEFAULT_VERSION = '<version_name>']
ALTER MODEL [ IF EXISTS ] <model_name> SET TAG <tag_name> = '<tag_value>'
ALTER MODEL [ IF EXISTS ] <model_name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER MODEL [ IF EXISTS ] <model_name> VERSION <version_name> SET ALIAS = '<alias_name>'
ALTER MODEL [ IF EXISTS ] <model_name> VERSION <version_or_alias_name> UNSET ALIAS
ALTER MODEL <model_name> RENAME TO <new_name>
Parâmetros¶
name
Especifica o identificador (ou seja, nome) do modelo.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
SET ...
Especifica uma ou mais propriedades de modelo a serem definidas.
COMMENT = 'string_literal'
Define o comentário do modelo. Isso também pode ser feito usando o comando COMMENT.
DEFAULT_VERSION = 'version_name'
Define a versão padrão do modelo (a versão na qual os métodos são invocados ao chamar um método diretamente no modelo). O nome da versão é um identificador.
O alias do sistema DEFAULT refere-se à versão padrão.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Especifica o nome da tag e o valor da cadeia de caracteres dela.
O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.
Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.
ALIAS = 'alias_name'
Define
alias_name
como um alias da versão. Um alias é um nome alternativo que pode ser facilmente reatribuído. O alias pode ser usado na maioria dos lugares onde o nome da versão pode ser usado. Uma versão pode ter no máximo um alias.O nome do alias é um identificador. Ele deve ser único no modelo e não pode duplicar os nomes de alias do sistema, que são:
DEFAULT
refere-se à versão padrão do modelo.FIRST
refere-se à versão mais antiga do modelo em termos de tempo de criação.LAST
refere-se à versão mais recente do modelo no momento da criação.
UNSET TAG tag_name [ , tag_name ... ]
Especifica uma ou mais tags a serem desativadas no modelo.
UNSET ALIAS
Remove o alias desta versão do modelo, se houver um. Os aliases do sistema DEFAULT, FIRST e LAST não podem ser removidos. Você pode especificar a versão pelo nome ou pelo alias.
RENAME TO new_name
Renomeia o modelo especificado com um novo identificador que não está sendo usado atualmente por nenhum outro modelo no esquema.
Para obter mais detalhes sobre os identificadores de, consulte Requisitos para identificadores.
Você pode mover o objeto para um banco de dados e/ou esquema diferente enquanto opcionalmente renomeia o objeto. Para isso, especifique um valor qualificado
new_name
que inclua o novo banco de dados e/ou nome do esquema no formuláriodb_name.schema_name.object_name
ouschema_name.object_name
, respectivamente.Nota
O banco de dados e/ou esquema de destino já deve existir. Além disso, um objeto com o mesmo nome não pode já existir no banco de dados de destino; caso contrário, a instrução retorna um erro.
É proibido mover um objeto para um esquema de acesso gerenciado a menos que o proprietário do objeto (ou seja, a função que tem o privilégio OWNERSHIP sobre o objeto) também possua o esquema de destino.
Quando um modelo é renomeado, outros objetos que fazem referência a ele devem ser atualizados com o novo nome.
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Modelo |
Uma função deve ser concedida ou herdar o privilégio OWNERSHIP no objeto para criar um objeto temporário com o mesmo nome do objeto que já existe no esquema. |
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.