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.
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';
Consulte também