Usando propriedades estendidas em objetos de banco de dados
Ao usar as propriedades estendidas, você poderá adicionar texto para conteúdo descritivo ou instrucional, adicionar máscaras de entrada e regras de formatação, como propriedades de objetos em um banco de dados ou do próprio banco de dados. Por exemplo, você poderá adicionar uma propriedade estendida a um esquema, a uma exibição do esquema ou a uma coluna na exibição. Como as propriedades estendidas são armazenadas em um banco de dados, todos os aplicativos que lêem as propriedades podem avaliar o objeto do mesmo modo. Isso ajuda a garantir a consistência no modo como os dados são tratados em todos os programas no sistema.
As propriedades estendidas podem ser usadas para o seguinte:
Especificar uma legenda para uma tabela, exibição ou coluna. Os aplicativos poderão usar a mesma legenda em uma interface do usuário que exiba informações de uma tabela, exibição ou coluna.
Especificar uma máscara de entrada para uma coluna de modo que os aplicativos possam validar os dados antes de executarem uma instrução Transact-SQL. Por exemplo, o formato necessário para uma coluna de código postal ou número de telefone pode ser especificado na propriedade estendida.
Especificar as regras de formatação para exibir os dados em uma coluna.
Registrar uma descrição de objetos de banco de dados específicos que os aplicativos possam exigir para usuários. Por exemplo, as descrições podem ser usadas em um aplicativo de dicionário de dados ou em um relatório.
Especificar o tamanho e local de janela nos quais uma coluna deve ser exibida.
Observação |
---|
As propriedades estendidas não devem ser usadas para ocultar informações confidenciais sobre um objeto. Todos os usuários que tenham permissões no objeto poderão exibir as propriedades estendidas desse objeto. Por exemplo, se você conceder permissão SELECT em uma tabela, o usuário poderá exibir as propriedades estendidas dessa tabela. |
Definindo as propriedades estendidas
Cada propriedade estendida tem um nome e valor definido pelo usuário. O valor de uma propriedade estendida é um valor sql_variant que pode conter até 7.500 bytes de dados. Várias propriedades estendidas podem ser adicionadas a um único objeto.
Para especificar as propriedades estendidas, os objetos em um banco de dados SQL Server são classificados em três níveis, 0, 1 e 2. O nível 0 é o nível mais alto e está definido como objetos que são contidos no escopo do banco de dados. Objetos de nível 1 são contidos em um esquema ou escopo do usuário e os objetos de nível 2 são contido pelos objetos de nível 1 As propriedades estendidas podem ser definidas para os objetos em qualquer um desses níveis.
As referências a um objeto, em um nível, precisam ser qualificadas com nomes de objetos de um nível superior no qual estejam contidos . Por exemplo, quando adicionar uma propriedade estendida à coluna de tabela, do nível 2, é preciso também especificar o nome da tabela, do nível 1, que contém a coluna e o esquema do nível 0, que contém a tabela.
No exemplo a seguir, o valor de propriedade estendida 'Minimum inventory quantity.' é adicionado à coluna SafetyStockLevel na tabela Product que está contida no esquema Production .
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Minimum inventory quantity.',
@level0type = N'SCHEMA', @level0name = Production,
@level1type = N'TABLE', @level1name = Product,
@level2type = N'COLUMN', @level2name = SafetyStockLevel;
GO
Adicionando propriedades estendidas a objetos
As tabelas a seguir listam os objetos aos quais você pode adicionar propriedades estendidas. Os objetos nível 0, nível 1 e nível 2 estão listados e também as permissões necessárias para adicionar, cancelar ou exibir as propriedades estendidas.
Agregação
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
AGGREGATE |
ALTER em OBJECT agregado |
Qualquer em OBJECT |
Aplica-se às funções de agregação CLR definidas pelo usuário. |
Chave assimétrica
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
ASYMMETRIC KEY |
ALTER em CERTIFICATE |
Qualquer em KEY |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Assembly
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
ASSEMBLY |
ALTER em ASSEMBLY |
Qualquer em ASSEMBLY |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Certificado
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
CERTIFICATE |
ALTER em CERTIFICATE |
Qualquer em CERTIFICATE |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Contrato (Service Broker)
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
CONTRACT |
ALTER em CONTRACT |
Qualquer em CONTRACT |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Banco de dados
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
Nenhum |
ALTER em DATABASE |
CONTROL em DATABASE Ou TAKE OWNERSHIP em DATABASE Ou VIEW DEFINITION em DATABASE Ou ALTER ANY DATABASE em SERVER Ou CREATE DATABASE em SERVER |
A propriedade se aplica ao próprio banco de dados. |
1 |
Nenhum |
|
|
|
2 |
Nenhum |
|
|
|
Exemplo
No exemplo a seguir, uma propriedade estendida é adicionada ao próprio banco de dados de exemplo AdventureWorks .
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'AdventureWorks Sample OLTP Database';
GO
Padrão
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
|
1 |
DEFAULT |
ALTER em SCHEMA |
HAS_DBACCESS = 1 |
Fornecida somente para compatibilidade com versões anteriores. Para obter mais informações, consulte Recursos do Mecanismo de Banco de Dados preteridos no SQL Server 2008. |
2 |
Nenhum |
|
|
|
Notificações de eventos
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT NOTIFICATION ON DATABASE |
Proprietário da notificação de eventos Ou CONTROL, ALTER, TAKE OWNERSHIP ou VIEW DEFINITION no banco de dados Ou ALTER ANY DATABASE EVENT NOTIFICATION |
Aplica-se às notificações de eventos no nível de banco de dados que são geradas pelo banco de dados. As propriedades estendidas Using Extended Properties on Database Objects não podem ser adicionadas às notificações de eventos no nível de servidor. |
1 |
Nenhum |
|
|
|
2 |
Nenhum |
|
|
|
Grupo de arquivos ou nome de arquivo
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
FILEGROUP |
ALTER em DATABASE |
HAS_DBACCESS = 1 |
1 |
LOGICAL FILE NAME |
ALTER em DATABASE |
HAS_DBACCESS = 1 |
2 |
Nenhum |
|
|
Exemplo
No exemplo a seguir, uma propriedade estendida é adicionada ao grupo de arquivos PRIMARY.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary filegroup for the AdventureWorks sample database.',
@level0type = N'FILEGROUP', @level0name = [PRIMARY];
GO
No exemplo a seguir, uma propriedade estendida é adicionada ao nome do arquivo lógico AdventureWorks_Data no grupo de arquivos PRIMARY.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary data file for the AdventureWorks sample database.',
@level0type = N'FILEGROUP', @level0name = [PRIMARY],
@level1type = N'Logical File Name', @level1name = AdventureWorks_Data;
GO
Função
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
FUNCTION |
ALTER em OBJECT de função |
Qualquer em COLUMN Ou Qualquer em OBJECT |
Aplica-se às funções estas funções definidas pelo usuário:
Se um tipo de nível 2 não for especificado, a propriedade se aplica à própria função. |
2 |
COLUMN |
ALTER em OBJECT de função |
Qualquer em COLUMN Ou Qualquer em OBJECT |
|
2 |
CONSTRAINT |
ALTER em OBJECT de função |
Qualquer em COLUMN Ou Qualquer em OBJECT |
|
2 |
PARAMETER |
ALTER em OBJECT de função |
Qualquer em COLUMN Ou Qualquer em OBJECT |
|
Exemplo
No exemplo a seguir, uma propriedade estendida é adicionada à função definida pelo usuário ufnGetStock.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Scalar function returning the quantity of inventory for a specified ProductID.',
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock;
GO
No exemplo a seguir, uma propriedade estendida é adicionada ao parâmetro @ProductID definido na função definida pelo usuário ufnGetStock.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Input parameter. Enter a valid ProductID.',
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock,
@level2type = N'PARAMETER', @level2name ='@ProductID';
GO
Tipo de mensagem
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
MESSAGE TYPE |
ALTER em MESSAGE TYPE |
HAS_DBACCESS = 1 |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Função de partição
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
PARTITION FUNCTION |
ALTER ANY DATASPACE em DATABASE |
HAS_DBACCESS = 1 |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Esquema de partição
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
PARTITION SCHEME |
ALTER ANY DATASPACE em DATABASE |
HAS_DBACCESS = 1 |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Guia de plano
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
PLAN GUIDE |
ALTER ANY DATASPACE em DATABASE |
VIEW DEFINITION, ALTER, TAKE OWNERSHIP ou CONTROL em Banco de dados para SQL ou guias de TEMPLATE e VIEW DEFINITION, ALTER, TAKE OWNERSHIP ou CONTROL em objeto para guias de OBJECT |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
O exemplo a seguir adicionou uma propriedade estendida ao guia de plano TemplateGuide1.
USE AdventureWorks;
GO
EXECUTE sp_addextendedproperty @name=N'PlanGuideGroup', @value = N'MyTest',
@level0type = N'Plan Guide', @level0name = 'TemplateGuide1';
Procedimento
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
PROCEDURE |
ALTER em OBJECT de procedimento
Observação
Só os membros da função de servidor fixa sysadmin podem adicionar propriedades estendidas aos procedimentos armazenados estendidos.
|
Qualquer em OBJECT |
Aplica-se a esses procedimentos armazenados definidos pelo usuário:
Se um tipo de nível 2 não for especificado, a propriedade se aplica ao próprio procedimento. |
2 |
PARAMETER |
ALTER em OBJECT de procedimento |
Qualquer em OBJECT |
|
Fila (Service Broker)
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
QUEUE |
ALTER em OBJECT de fila |
Qualquer em OBJECT |
|
2 |
EVENT NOTIFICATION |
ALTER em OBJECT de fila |
Proprietário da notificação de eventos Ou CONTROL, ALTER, TAKE OWNERSHIP ou VIEW DEFINITION na fila Ou ALTER ANY DATABASE EVENT NOTIFICATION |
A notificação de eventos pode ter um proprietário separado da fila. |
Associação de serviço remoto (Service Broker)
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
REMOTE SERVICE BINDING |
ALTER em REMOTE SERVICE BINDING |
Qualquer em REMOTE SERVICE BINDING |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Rota (Service Broker)
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
ROUTE |
ALTER em REMOTE SERVICE BINDING |
Qualquer em ROUTE |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Regra
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
|
1 |
RULE |
ALTER em SCHEMA |
HAS_DBACCESS = 1 |
Fornecido para compatibilidade com versões anteriores. Para obter mais informações, consulte Recursos do Mecanismo de Banco de Dados preteridos no SQL Server 2008. |
2 |
Nenhum |
|
|
|
Esquema ou usuário
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
ALTER em SCHEMA ou ALTER em USER |
Qualquer em APPLICATION ROLE Ou Qualquer em ROLE Ou Qualquer em USER |
Se um tipo de nível 1 não for especificado, a propriedade se aplicará ao próprio esquema ou usuário. USER pode ser uma destas opções:
USER só deve ser usado quando você adicionar uma propriedade estendida a um usuário.
Importante
USER definido como nível 0, nos tipos de objetos de nível 1 ou 2 será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso use SCHEMA como o nível 0.
|
1 |
Varia |
|
|
|
2 |
Varia |
|
|
|
Serviço
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
SERVICE |
ALTER em SERVICE |
ALTER em SERVICE Ou CONTROL em SERVICE Ou TAKE OWNERSHIP em SERVICE Ou VIEW DEFINITION em SERVICE |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Chave simétrica
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
---|---|---|---|
0 |
SYMMETRIC KEY |
ALTER em CERTIFICATE |
Qualquer em KEY |
1 |
Nenhum |
|
|
2 |
Nenhum |
|
|
Sinônimo
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
SYNONYM |
CONTROL em SYNONYM |
Qualquer em OBJECT |
|
2 |
Nenhum |
|
|
|
Tabela
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
TABLE |
ALTER em OBJECT de tabela |
Qualquer em COLUMN Ou Qualquer em OBJECT |
Aplica-se às tabelas definidas pelo usuário. Se um nível 2 não for especificado, a propriedade aplica-se à própria tabela. |
2 |
COLUMN |
ALTER em OBJECT de tabela |
Qualquer em COLUMN Ou Qualquer em OBJECT |
|
2 |
CONSTRAINT |
ALTER em OBJECT de tabela |
ALTER em OBJECT Ou CONTROL em OBJECT Ou TAKE OWNERSHIP em OBJECT Ou VIEW DEFINITION em OBJECT |
Aplica-se a essas restrições:
|
2 |
INDEX |
ALTER em OBJECT de tabela |
Qualquer em COLUMN Ou Qualquer em OBJECT |
Aplica-se a índices relacionais e XML. |
2 |
TRIGGER |
ALTER em OBJECT de tabela |
ALTER em OBJECT Ou CONTROL em OBJECT Ou TAKE OWNERSHIP em OBJECT Ou VIEW DEFINITION em OBJECT |
Aplica-se a estes gatilhos DML:
Não se aplica aos disparadores DDL. |
Exemplo
No exemplo a seguir, uma propriedade estendida é adicionada à tabela Address no esquema Person.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'Street address information for customers, employees, and vendors.',
@level0type = N'SCHEMA', @level0name = Person,
@level1type = N'TABLE', @level1name = Address;
GO
No exemplo a seguir, uma propriedade estendida é adicionada ao índice IX_Address_StateProviceID na tabela Address no esquema Person.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Nonclustered index on StateProvinceID.',
@level0type = N'SCHEMA', @level0name = Person,
@level1type = N'TABLE', @level1name = Address,
@level2type = N'INDEX', @level2name = IX_Address_StateProvinceID;
GO
Gatilho
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
TRIGGER |
ALTER ANY TRIGGER em DATABASE |
ALTER ANY TRIGGER em DATABASE |
Aplica-se somente aos disparadores DDL. |
1 |
Nenhum |
|
|
|
2 |
Nenhum |
|
|
|
Tipo
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
TYPE |
CONTROL em TYPE |
Qualquer em TYPE |
Aplica-se aos tipos definidos pelo usuário criados em versões anteriores do SQL Server. Fornecido para compatibilidade com versões anteriores. Para obter mais informações, consulte Recursos do Mecanismo de Banco de Dados preteridos no SQL Server 2008. |
1 |
Nenhum |
|
|
|
2 |
Nenhum |
|
|
|
Tipo
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
TYPE |
CONTROL em TYPE |
Qualquer em TYPE |
|
2 |
Nenhum |
|
|
|
Exibição
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
VIEW |
ALTER na exibição OBJECT |
Qualquer em COLUMN Ou Qualquer em OBJECT |
Aplica-se às exibições definidas pelo usuário. Se um nível 2 não for especificado, a propriedade aplica-se à própria exibição. |
2 |
COLUMN |
ALTER na exibição OBJECT |
Qualquer em COLUMN Ou Qualquer em OBJECT |
|
2 |
INDEX |
ALTER na exibição OBJECT |
Qualquer em COLUMN Ou Qualquer em OBJECT |
Aplica-se a índices relacionais e XML. |
2 |
TRIGGER |
ALTER na exibição OBJECT |
ALTER ANY TRIGGER em DATABASE Ou ALTER em OBJECT Ou CONTROL em OBJECT Ou TAKE OWNERSHIP em OBJECT Ou VIEW DEFINITION em OBJECT |
Aplica-se a estes gatilhos DML:
Não se aplica aos disparadores DDL. |
Coleção de esquema XML
Nível |
Tipo de nível |
Permissões necessárias para adicionar ou descartar uma propriedade estendida |
Permissões necessárias para exibir uma propriedade estendida |
Comentários |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA deve ser usado em vez de USER. Consulte "Esquema versus usuário" mais adiante neste tópico. |
1 |
XML SCHEMA COLLECTION |
ALTER em XML SCHEMA COLLECTION |
ALTER em XML SCHEMA COLLECTION Ou CONTROL em XML SCHEMA COLLECTION Ou REFERENCES em XML SCHEMA COLLECTION Ou TAKE OWNERSHIP em XML SCHEMA COLLECTION Ou VIEW DEFINITION em XML SCHEMA COLLECTION |
Não podem ser adicionadas propriedades estendidas a um namespace XML. |
2 |
Nenhum |
|
|
|
Objetos que não oferecem suporte às propriedades estendidas
Não podem ser definidas propriedades estendidas nestes objetos:
Objetos do escopo de banco de dados não listados nas tabelas anteriores. Isso inclui objetos de texto completo
Objetos fora do escopo de banco de dados como pontos finais HTTP.
Objetos sem nomes como parâmetros de função de partição.
Certificados, chaves simétricas, chaves assimétricas e credenciais.
Objetos definidos pelo sistema como tabelas do sistema, exibições do catálogo e procedimentos armazenados do sistema.
Esquema versus usuário
Em versões anteriores do SQL Server, os usuários tinham objetos de banco de dados como tabelas, exibições e gatilhos. Por isso, era permitido adicionar uma propriedade estendida a um desses objetos e especificar um nome de usuário como o nível 0. Os objetos de banco de dados agora são contidos em esquemas independentes dos usuários que tenham os esquemas.
Se você especificar um USER como nível 0, quando aplicar uma propriedade estendida ao objeto de banco de dados , isso poderá criar ambigüidade na resolução de nome. Por exemplo, imagine que o usuário Mary tenha dois esquemas, Mary e MySchema e esses esquemas contenham ambos uma tabela chamada MyTable. Se Mary adicionar uma propriedade estendida à tabela MyTable e especificar @level0type = N'USER', @level0name = Mary, não assegura para qual tabela a propriedade estendida foi aplicada. Para manter compatibilidade com versões anteriores, o SQL Server aplicará a propriedade à tabela contida no esquema chamado Mary. Para obter mais informações sobre usuários e esquemas, consulte Separação do esquema de usuário.
Usando máscaras de entrada versus restrições CHECK
As restrições CHECK e as propriedades estendidas que fornecem as máscaras de entrada podem ser usadas para especificar o padrão de dados esperado para a tabela ou para a exibição de colunas . A maioria dos sites escolhe um ou o outro, exceto se ocorrer um dos seguintes casos:
As restrições CHECK foram usadas como uma medida temporária até que todos os programas que trabalhavam com esta tabela pudessem ser alterados para usar as propriedades da máscara de entrada.
O site também oferece suporte a usuários que atualizam os dados através de ferramentas ad hoc que não lêem as propriedades estendidas.
A vantagem da máscara de entrada sobre a restrição CHECK é que, a lógica se aplica aos aplicativos. Esses podem gerar mais erros informativos se um usuário fornecer dados formatados incorretamente. A desvantagem da máscara de entrada é que ela necessita de uma chamada separada para fn_listextendedproperty ou sys.extended_properties para obter a propriedade e a lógica para aplicar a máscara deve ser adicionada em todos os programas.
Replicando propriedades estendidas
As propriedades estendidas são replicadas apenas na sincronização inicial entre o Publicador e o Assinante. Se você adicionar ou modifica uma propriedade estendida depois da sincronização inicial, a alteração não será replicada. Para obter mais informações sobre a replicação de objetos de banco de dados, consulte Publicando dados e objetos de banco de dados.
Usando as propriedades estendidas em aplicativos
As propriedades estendidas fornecem apenas um local nomeado para armazenar dados. Todos os aplicativos devem ser codificados para consultar a propriedade e executar a ação adequada. Por exemplo, adicionar uma propriedade de legenda a uma coluna não cria uma legenda que possa ser exibida por um aplicativo. Cada aplicativo deve ser codificado para ler a legenda e exibi-la corretamente.
Para adicionar uma propriedade estendida
Para atualizar uma propriedade estendida
Para excluir uma propriedade estendida
Para exibir uma propriedade estendida
Consulte também