Compartilhar via


sp_special_columns (Transact-SQL)

Retorna o melhor conjunto de colunas que identificam, de forma exclusiva, uma linha na tabela. Também retorna colunas atualizadas automaticamente quando qualquer valor na linha for atualizado por uma transação.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_special_columns [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @qualifier = ] 'qualifier' ] 
     [ , [ @col_type = ] 'col_type' ] 
     [ , [ @scope = ] 'scope' ]
     [ , [ @nullable = ] 'nullable' ] 
     [ , [ @ODBCVer = ] 'ODBCVer' ] 
[ ; ]

Argumentos

  • [ @table_name =] 'table_name'
    É o nome da tabela usada para retornar informações de catálogo. name é sysname, sem padrão. Não há suporte para a correspondência de padrão curinga.

  • [ @table_owner =] 'table_owner'
    É o proprietário da tabela usada para retornar informações de catálogo. owner é sysname, com um padrão NULL. Não há suporte para a correspondência de padrão curinga. Se owner não for especificado, serão aplicadas as regras de visibilidade de tabela padrão do DBMS subjacente.

    No SQL Server, se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se owner não estiver especificado e o usuário atual não possuir uma tabela com name especificado, esse procedimento procurará uma tabela com name especificado, pertencente ao proprietário do banco de dados. Se a tabela existir, suas colunas serão retornadas.

  • [ @qualifier =] 'qualifier'
    É o nome do qualificador de tabela. qualifier é sysname, com um padrão NULL. Vários produtos de DBMS dão suporte à nomenclatura de três partes de tabelas (qualifier.owner.name). No SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, ela representa o nome do servidor do ambiente de banco de dados da tabela.

  • [ @col_type =] 'col_type'
    É o tipo da coluna. col_type é char(1), com um padrão R. O tipo R retorna a coluna ou conjunto de colunas ideal que, pela recuperação de valores da coluna ou colunas, permite que qualquer linha da tabela especificada seja identificada de forma exclusiva. A coluna pode ser uma pseudocoluna especificamente projetada para esta finalidade ou a coluna ou colunas de qualquer índice exclusivo da tabela. O tipo V retorna a coluna ou as colunas da tabela especificada, se houver, que são automaticamente atualizadas pela fonte de dados quando qualquer valor na linha é atualizado por qualquer transação.

  • [ @scope =] 'scope'
    É o escopo mínimo necessário de ROWID. scope é char(1), com um padrão T. O escopo C especifica que a ROWID é válida somente quando posicionada nessa linha. O escopo T especifica que a ROWID é válida para a transação.

  • [ @nullable =] 'nullable'
    Indica se as colunas especiais podem aceitar um valor nulo. nullable é char(1), com um padrão U. O especifica colunas especiais que não permitem valores nulos. U especifica colunas que permitem valor parcialmente nulo.

  • [ @ODBCVer =] 'ODBCVer'
    É a versão do ODBC que está sendo utilizada. ODBCVer é int(4), com um padrão 2. Isso indica o ODBC versão 2.0. Para obter mais informações sobre a diferença entre o ODBC versão 2.0 e o ODBC versão 3.0, consulte a especificação SQLSpecialColumns para ODBC versão 3.0.

Valores de código de retorno

Nenhum

Conjuntos de resultados

Nome da coluna

Tipo de dados

Descrição

SCOPE

smallint

Escopo real da ID da linha. Pode ser 0, 1 ou 2. SQL Server sempre retorna 0. Esse campo sempre retorna um valor.

0 = SQL_SCOPE_CURROW. A ID da linha tem a garantia de ser válida somente quando posicionada nessa linha. Uma nova seleção posterior que utilize a ID da linha talvez não retorne uma linha se a linha foi atualizada ou excluída por outra transação.

1 = SQL_SCOPE_TRANSACTION. A ID da linha tem a garantia de ser válida durante a transação atual.

2 = SQL_SCOPE_SESSION. A ID da linha tem a garantia de ser válida durante a sessão (dentro dos limites da transação).

COLUMN_NAME

sysname

Nome de cada coluna da tableretornada. Esse campo sempre retorna um valor.

DATA_TYPE

smallint

Tipo de dados SQL ODBC.

TYPE_NAME

sysname

Nome do tipo de dados dependente da fonte de dados; por exemplo, char, varchar, money ou text.

PRECISION

Int

Precisão da coluna na fonte de dados. Esse campo sempre retorna um valor.

LENGTH

Int

Comprimento, em bytes, necessário para o tipo de dados em seu formato binário na fonte de dados; por exemplo, 10 para char(10), 4 para integer e 2 para smallint.

SCALE

smallint

Escala da coluna na fonte de dados. NULL é retornado para os tipos de dados para os quais a escala não é aplicável.

PSEUDO_COLUMN

smallint

Indica se a coluna é uma pseudocoluna. SQL Server sempre retorna 1:

0 = SQL_PC_UNKNOWN

1 = SQL_PC_NOT_PSEUDO

2 = SQL_PC_PSEUDO

Comentários

sp_special_columns é equivalente a SQLSpecialColumns no ODBC. Os resultados retornados são ordenados por SCOPE.

Permissões

Requer a permissão SELECT no esquema.

Exemplos

O exemplo a seguir retorna informações sobre a coluna que identifica linhas de forma exclusiva na tabela HumanResources.Department.

USE AdventureWorks2008R2;
GO
EXEC sp_special_columns @table_name = 'Department' 
    ,@table_owner = 'HumanResources';