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çãoObservaçã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:

  • CLR escalar

  • CLR com valor de tabela

  • Transact-SQL escalar

  • Transact-SQL com valor de tabela embutida

  • Transact-SQL com valor de tabela

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çãoObservaçã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:

  • CLR

  • Transact-SQL

  • Filtro de replicação

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:

  • Função de aplicativo

  • Função de banco de dados

  • Usuário SQL Server

  • Grupo do Windows

  • Usuário do Windows

USER só deve ser usado quando você adicionar uma propriedade estendida a um usuário.

Observação importanteImportante
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:

  • CHECK

  • DEFAULT

  • FOREIGN KEY

  • PRIMARY KEY

  • UNIQUE

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:

  • CLR

  • Transact-SQL

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:

  • CLR

  • Transact-SQL

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