Coleções de esquema do SQL Server

O Provedor de Dados Microsoft SqlClient para SQL Server dá suporte a coleções de esquemas adicionais, além das coleções de esquemas comuns. As coleções de esquemas variam ligeiramente de acordo com a versão utilizada do SQL Server. Para determinar a lista de coleções de esquemas compatíveis, chame o método GetSchema sem argumentos ou com o nome da coleção de esquemas "MetaDataCollections". Isso retornará uma DataTable com uma lista de coleções de esquemas compatíveis, o número de restrições ao qual cada uma dá suporte e o número de partes de identificador usado por elas.

Bancos de dados

ColumnName Tipo de dados Descrição
database_name String Nome do banco de dados.
dbid Int16 ID do banco de dados.
create_date DateTime Data de criação do banco de dados.

Chaves estrangeiras

ColumnName Tipo de dados Descrição
CONSTRAINT_CATALOG String Catálogo ao qual a restrição pertence.
CONSTRAINT_SCHEMA String Esquema que contém a restrição.
CONSTRAINT_NAME String Nome.
TABLE_CATALOG String Nome de tabela da qual a restrição faz parte.
TABLE_SCHEMA String Esquema que contém a tabela.
TABLE_NAME String Nome da tabela
CONSTRAINT_TYPE String Tipo de restrição. Somente "FOREIGN KEY" é permitido.
IS_DEFERRABLE String Especifica se a restrição pode ser adiada. Retorna NO.
INITIALLY_DEFERRED String Especifica se a restrição pode ser inicialmente adiada. Retorna NO.

Índices

ColumnName Tipo de dados Descrição
constraint_catalog String Catálogo ao qual o índice pertence.
constraint_schema String Esquema que contém o índice.
constraint_name String Nome do índice.
table_catalog String Nome da tabela à qual o índice está associado.
table_schema String Esquema que contém a tabela à qual o índice está associado.
table_name String Nome da tabela.
index_name String Nome do índice.

Índices (SQL Server 2008)

A partir do .NET Framework versão 3.5 SP1 e SQL Server 2008, as colunas a seguir foram adicionadas à coleção de esquemas Indexes para dar suporte a novos tipos espaciais, fluxo de arquivos e colunas esparsas. Essas colunas não têm suporte em versões anteriores do .NET Framework e SQL Server.

ColumnName Tipo de dados Descrição
type_desc String O tipo do índice será um dos seguintes:

– HEAP
– CLUSTERIZADO
– NÃO CLUSTERIZADO
– XML
– ESPACIAL

IndexColumns

ColumnName Tipo de dados Descrição
constraint_catalog String Catálogo ao qual o índice pertence.
constraint_schema String Esquema que contém o índice.
constraint_name String Nome do índice.
table_catalog String Nome da tabela à qual o índice está associado.
table_schema String Esquema que contém a tabela à qual o índice está associado.
table_name String Nome da tabela.
column_name String Nome da coluna à qual o índice está associado.
ordinal_position Int32 Posição ordinal na coluna.
KeyType Byte O tipo de objeto.
index_name String Nome do índice.

Procedimentos

ColumnName Tipo de dados Descrição
SPECIFIC_CATALOG String Nome específico do catálogo.
SPECIFIC_SCHEMA String Nome específico do esquema.
SPECIFIC_NAME String Nome específico do catálogo.
ROUTINE_CATALOG String Catálogo ao qual o procedimento armazenado pertence.
ROUTINE_SCHEMA String Esquema que contém o procedimento armazenado.
ROUTINE_NAME String Nome do procedimento armazenado.
ROUTINE_TYPE String Retorna PROCEDURE para procedimentos armazenados e FUNCTION para funções.
CREATED DateTime Hora em que o procedimento foi criado.
LAST_ALTERED DateTime A última vez em que o procedimento foi modificado.

Parâmetros de procedimento

ColumnName Tipo de dados Descrição
SPECIFIC_CATALOG String Nome do catálogo do procedimento do qual esse é um parâmetro.
SPECIFIC_SCHEMA String Esquema que contém o procedimento do qual esse parâmetro faz parte.
SPECIFIC_NAME String Nome do procedimento do qual esse parâmetro faz parte.
ORDINAL_POSITION Int32 A posição ordinal do parâmetro começando em 1. Para o valor retornado de um procedimento, isso é 0.
PARAMETER_MODE String Retorna IN no caso de um parâmetro de entrada, OUT no caso de um parâmetro de saída e INOUT no caso de um parâmetro de entrada/saída.
IS_RESULT String Retorna YES se indica o resultado do procedimento que é uma função. Caso contrário, retorna NO.
AS_LOCATOR String Retorna YES se declarado como localizador. Caso contrário, retorna NO.
PARAMETER_NAME String Nome do parâmetro. NULL se isto corresponder ao valor de retorno de uma função.
DATA_TYPE String Tipo de dados fornecido pelo sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Comprimento máximo em caracteres para tipos de dados binários ou de caractere. Caso contrário, retorna NULL.
CHARACTER_OCTET_LENGTH Int32 Comprimento máximo em bytes para tipos de dados binários ou de caractere. Caso contrário, retorna NULL.
COLLATION_CATALOG String Nome do catálogo da ordenação do parâmetro. Se não for um dos tipos de caractere, retorna NULL.
COLLATION_SCHEMA String Sempre retorna NULL.
COLLATION_NAME String Nome da ordenação do parâmetro. Se não for um dos tipos de caractere, retorna NULL.
CHARACTER_SET_CATALOG String O nome de catálogo do conjunto de caracteres do parâmetro. Se não for um dos tipos de caractere, retorna NULL.
CHARACTER_SET_SCHEMA String Sempre retorna NULL.
CHARACTER_SET_NAME String O nome do conjunto de caracteres do parâmetro. Se não for um dos tipos de caractere, retorna NULL.
NUMERIC_PRECISION Byte Precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, retorna NULL.
NUMERIC_PRECISION_RADIX Int16 Base de precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, retorna NULL.
NUMERIC_SCALE Int32 Escala de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, retorna NULL.
DATETIME_PRECISION Int16 Precisão em segundos fracionários se o tipo de parâmetro é datetime ou smalldatetime. Caso contrário, retorna NULL.
INTERVAL_TYPE String NULL. Reservado para uso futuro pelo SQL Server.
INTERVAL_PRECISION Int16 NULL. Reservado para uso futuro pelo SQL Server.

Tabelas

ColumnName Tipo de dados Descrição
TABLE_CATALOG String Catálogo da tabela.
TABLE_SCHEMA String Esquema que contém a tabela.
TABLE_NAME String Nome da tabela.
TABLE_TYPE String Tipo de tabela. Pode ser VIEW ou BASE TABLE.

Colunas

ColumnName Tipo de dados Descrição
TABLE_CATALOG String Catálogo da tabela.
TABLE_SCHEMA String Esquema que contém a tabela.
TABLE_NAME String Nome da tabela.
COLUMN_NAME String Nome da coluna.
ORDINAL_POSITION Int32 Número de identificação da coluna.
COLUMN_DEFAULT String Valor padrão da coluna
IS_NULLABLE String Possibilidade de nulidade da coluna. Se essa coluna permite NULL, ela retorna YES. Caso contrário, NO é retornado.
DATA_TYPE String Tipo de dados fornecido pelo sistema.
CHARACTER_MAXIMUM_LENGTH Int32 – Sql8, Int16 – Sql7 Comprimento máximo, em caracteres, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
CHARACTER_OCTET_LENGTH Int32 – SQL8, Int16 – Sql7 Comprimento máximo, em bytes, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
NUMERIC_PRECISION Byte sem sinal Precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_PRECISION_RADIX Int16 Base de precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_SCALE Int32 Escala de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
DATETIME_PRECISION Int16 Código de subtipo para os tipos de dados datetime e interval do SQL-92. Para outros tipos de dados, é retornado NULL.
CHARACTER_SET_CATALOG String Retorna o mestre, indicando o banco de dados no qual o conjunto de caracteres está localizado, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
CHARACTER_SET_SCHEMA String Sempre retorna NULL.
CHARACTER_SET_NAME String Retorna o nome exclusivo do conjunto de caracteres se essa coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
COLLATION_CATALOG String Retorna o mestre, indicando o banco de dados no qual a ordenação está definida, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, esta coluna será NULL.

Colunas (SQL Server 2008)

A partir do .NET Framework versão 3.5 SP1 e SQL Server 2008, as colunas a seguir foram adicionadas à coleção de esquemas Columns para dar suporte a novos tipos espaciais, filestream e colunas esparsas. Essas colunas não têm suporte em versões anteriores do .NET Framework e SQL Server.

ColumnName Tipo de dados Descrição
IS_FILESTREAM String YES se a coluna tem o atributo FILESTREAM.

NO se a coluna não tem o atributo FILESTREAM.
IS_SPARSE String YES se a coluna é uma coluna esparsa.

NO se a coluna não é uma coluna esparsa.
IS_COLUMN_SET String YES se a coluna é uma coluna do conjunto de colunas.

NO se a coluna não é uma coluna do conjunto de colunas.

AllColumns (SQL Server 2008)

A partir do .NET Framework versão 3.5 SP1 e SQL Server 2008, a coleção de esquemas AllColumns foi adicionada para dar suporte a colunas esparsas. Não há suporte para AllColumns em versões anteriores do .NET Framework e SQL Server.

AllColumns têm as mesmas restrições e o esquema DataTable resultante como a coleção de esquemas Columns. A única diferença é que AllColumns inclui colunas do conjunto de colunas que não estão incluídas na coleção de esquemas Columns. A tabela a seguir descreve essas colunas.

ColumnName Tipo de dados Descrição
TABLE_CATALOG String Catálogo da tabela.
TABLE_SCHEMA String Esquema que contém a tabela.
TABLE_NAME String Nome da tabela.
COLUMN_NAME String Nome da coluna.
ORDINAL_POSITION Int32 Número de identificação da coluna.
COLUMN_DEFAULT String Valor padrão da coluna
IS_NULLABLE String Possibilidade de nulidade da coluna. Se essa coluna permite NULL, ela retorna YES. Caso contrário, será retornado NO.
DATA_TYPE String Tipo de dados fornecido pelo sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Comprimento máximo, em caracteres, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
CHARACTER_OCTET_LENGTH Int32 Comprimento máximo, em bytes, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
NUMERIC_PRECISION Byte sem sinal Precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_PRECISION_RADIX Int16 Base de precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_SCALE Int32 Escala de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
DATETIME_PRECISION Int16 Código de subtipo para os tipos de dados datetime e interval do SQL-92. Para outros tipos de dados, é retornado NULL.
CHARACTER_SET_CATALOG String Retorna o mestre, indicando o banco de dados no qual o conjunto de caracteres está localizado, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
CHARACTER_SET_SCHEMA String Sempre retorna NULL.
CHARACTER_SET_NAME String Retorna o nome exclusivo do conjunto de caracteres se essa coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
COLLATION_CATALOG String Retorna o mestre, indicando o banco de dados no qual a ordenação está definida, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, esta coluna será NULL.
IS_FILESTREAM String YES se a coluna tem o atributo FILESTREAM.

NO se a coluna não tem o atributo FILESTREAM.
IS_SPARSE String YES se a coluna é uma coluna esparsa.

NO se a coluna não é uma coluna esparsa.
IS_COLUMN_SET String YES se a coluna é uma coluna do conjunto de colunas.

NO se a coluna não é uma coluna do conjunto de colunas.

ColumnSetColumns (SQL Server 2008)

A partir do .NET Framework versão 3.5 SP1 e SQL Server 2008, a coleção de esquemas ColumnSetColumns foi adicionada para dar suporte a colunas esparsas. Não há suporte para ColumnSetColumns em versões anteriores do .NET Framework e SQL Server. A coleção de esquemas ColumnSetColumns retorna o esquema para todas as colunas em um conjunto de colunas. A tabela a seguir descreve essas colunas.

ColumnName Tipo de dados Descrição
TABLE_CATALOG String Catálogo da tabela.
TABLE_SCHEMA String Esquema que contém a tabela.
TABLE_NAME String Nome da tabela.
COLUMN_NAME String Nome da coluna.
ORDINAL_POSITION Int32 Número de identificação da coluna.
COLUMN_DEFAULT String Valor padrão da coluna
IS_NULLABLE String Possibilidade de nulidade da coluna. Se essa coluna permite NULL, ela retorna YES. Caso contrário, será retornado NO.
DATA_TYPE String Tipo de dados fornecido pelo sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Comprimento máximo, em caracteres, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
CHARACTER_OCTET_LENGTH Int32 Comprimento máximo, em bytes, de dados binários, dados de caracteres e dados de texto e imagem. Caso contrário, será retornado NULL.
NUMERIC_PRECISION Byte sem sinal Precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_PRECISION_RADIX Int16 Base de precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
NUMERIC_SCALE Int32 Escala de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.
DATETIME_PRECISION Int16 Código de subtipo para os tipos de dados datetime e interval do SQL-92. Para outros tipos de dados, é retornado NULL.
CHARACTER_SET_CATALOG String Retorna o mestre, indicando o banco de dados no qual o conjunto de caracteres está localizado, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
CHARACTER_SET_SCHEMA String Sempre retorna NULL.
CHARACTER_SET_NAME String Retorna o nome exclusivo do conjunto de caracteres se essa coluna é do tipo de dados de caractere ou de texto. Caso contrário, será retornado NULL.
COLLATION_CATALOG String Retorna o mestre, indicando o banco de dados no qual a ordenação está definida, se a coluna é do tipo de dados de caractere ou de texto. Caso contrário, esta coluna será NULL.
IS_FILESTREAM String YES se a coluna tem o atributo FILESTREAM.

NO se a coluna não tem o atributo FILESTREAM.
IS_SPARSE String YES se a coluna é uma coluna esparsa.

NO se a coluna não é uma coluna esparsa.
IS_COLUMN_SET String YES se a coluna é uma coluna do conjunto de colunas.

NO se a coluna não é uma coluna do conjunto de colunas.

Usuários

ColumnName Tipo de dados Descrição
uid Int16 ID do usuário ID, exclusivo neste banco de dados. 1 é o proprietário do banco de dados.
user_name String Nome de usuário ou nome do grupo, exclusivo neste banco de dados.
createdate DateTime Data em que a conta foi adicionada.
updatedate DateTime A data em que a conta foi alterada pela última vez.

Exibições

ColumnName Tipo de dados Descrição
TABLE_CATALOG String Catálogo da exibição.
TABLE_SCHEMA String Esquema que contém a exibição.
TABLE_NAME String Nome da exibição.
CHECK_OPTION String Tipo de WITH CHECK OPTION. É CASCADE se a exibição original foi criada usando WITH CHECK OPTION. Caso contrário, será retornado NONE.
IS_UPDATABLE String Especifica se a exibição é atualizável. Sempre retorna NO.

ViewColumns

ColumnName Tipo de dados Descrição
VIEW_CATALOG String Catálogo da exibição.
VIEW_SCHEMA String Esquema que contém a exibição.
VIEW_NAME String Nome da exibição.
TABLE_CATALOG String Catálogo da tabela que está associado a esta exibição.
TABLE_SCHEMA String Esquema que contém a tabela associada a esta exibição.
TABLE_NAME String Nome da tabela associada à exibição. Tabela base.
COLUMN_NAME String Nome da coluna.

UserDefinedTypes

ColumnName Tipo de dados Descrição
assembly_name String O nome do arquivo para o assembly.
udt_name String O nome de classe para o assembly.
version_major Objeto Número de versão principal.
version_minor Objeto Número de versão secundária.
version_build Objeto Número de build.
version_revision Objeto Número de revisão.
culture_info Objeto As informações de cultura associadas a esse UDT.
public_key Objeto A chave pública usada por este assembly.
is_fixed_length Boolean Especifica se o tamanho do tipo é sempre o mesmo que max_length.
max_length Int16 Tamanho máximo do tipo em bytes.
Create_Date DateTime A data em que o assembly foi criado/registrado.
Permission_set_desc String O nome amigável do conjunto de permissões/nível de segurança do assembly.

Confira também