Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve o conjunto ótimo de colunas que identificam de forma única uma linha na tabela. Também devolve colunas atualizadas automaticamente quando qualquer valor na linha é atualizado por uma transação.
Transact-SQL convenções de sintaxe
Sintaxe
sp_special_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @col_type = ] 'col_type' ]
[ , [ @scope = ] 'scope' ]
[ , [ @nullable = ] 'nullable' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Arguments
[ @table_name = ] N'table_name'
O nome da tabela era usado para devolver a informação do catálogo. @table_name é sysname, sem padrão. A correspondência de padrões coringa não é suportada.
[ @table_owner = ] N'table_owner'
O proprietário da mesa era usado para devolver a informação do catálogo.
@table_owner é sysname, com o padrão de NULL. A correspondência de padrões coringa não é suportada. Se @table_owner não for especificado, aplicam-se as regras padrão de visibilidade de tabelas do sistema de gestão de bases de dados (SGBD) subjacente.
No SQL Server, se o utilizador atual possuir uma tabela com o nome especificado, as colunas dessa tabela são devolvidas. Se @table_owner não for especificado e o utilizador atual não possuir uma tabela do @table_name especificado, este procedimento procura uma tabela do @table_name especificado pertencente ao proprietário da base de dados. Se a tabela existir, as suas colunas são devolvidas.
[ @table_qualifier = ] N'table_qualifier'
O nome do qualificador da tabela.
@table_qualifier é sysname, com um padrão de NULL. Vários produtos SGBD suportam a nomenclatura em três partes para tabelas (<qualifier>.<owner>.<name>). No SQL Server, esta coluna representa o nome da base de dados. Em alguns produtos, representa o nome do servidor do ambiente de base de dados da tabela.
[ @col_type = ] 'col_type'
O tipo de coluna.
@col_type é char(1), com um padrão de R.
O tipo
Rdevolve a coluna ou conjunto ótimo de colunas que, ao recuperar valores da coluna ou das colunas, permite que qualquer linha da tabela especificada seja identificada de forma única. Uma coluna pode ser uma pseudocoluna concebida para este propósito, ou a coluna ou colunas de qualquer índice único para a tabela.O tipo
Vdevolve a coluna ou colunas na tabela especificada, se existirem, que são automaticamente atualizadas pela fonte de dados quando qualquer valor na linha é atualizado por qualquer transação.
[ @scope = ] 'escopo'
O âmbito mínimo exigido do ROWID.
@scope é char(1), com um padrão de T.
- O âmbito
Cespecifica que o ROWID é válido apenas quando posicionado nessa linha. - O âmbito
Tespecifica que o ROWID é válido para a transação.
[ @nullable = ] 'anulável'
Especifica se as colunas especiais podem aceitar um NULL valor.
@nullable é char(1), com um padrão de U.
-
Oespecifica colunas especiais que não permitem valores nulos. -
Uespecifica colunas que são parcialmente anuláveis.
[ @ODBCVer = ] ODBCVer
A versão ODBC está a ser utilizada.
@ODBCVer é int, com um padrão de 2. Este valor indica a versão 2.0 do ODBC. Para mais informações sobre a diferença entre a versão 2.0 e a versão 3.0 do ODBC, consulte a especificação ODBC SQLSpecialColumns para a versão 3.0 do ODBC.
Valores de código de retorno
Nenhum.
Conjunto de resultados
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
SCOPE |
smallint | Âmbito real do ID da linha. Pode ser 0, 1, ou 2. O SQL Server devolve 0sempre . Este campo devolve sempre um valor.0 = SQL_SCOPE_CURROW. O ID da linha é garantido válido apenas enquanto estiver posicionado nessa linha. Uma reseleção posterior usando o ID da linha pode não devolver uma linha se a linha for atualizada ou eliminada por outra transação.1 = SQL_SCOPE_TRANSACTION. O ID da linha é garantido válido durante toda a duração da transação atual.2 = SQL_SCOPE_SESSION. O ID da linha é garantido válido durante toda a duração da sessão (através dos limites das transações). |
COLUMN_NAME |
sysname | Nome da coluna para cada coluna da @table_name devolvido. Este campo devolve sempre um valor. |
DATA_TYPE |
smallint | Tipo de dados SQL ODBC. |
TYPE_NAME |
sysname | Nome do tipo de dado dependente da fonte de dados; por exemplo, char, varchar, dinheiro ou texto. |
PRECISION |
int | Precisão da coluna na fonte de dados. Este campo devolve sempre um valor. |
LENGTH |
int | Comprimento, em bytes, necessário para o tipo de dado na sua forma binária na fonte de dados, por exemplo, 10 para char(10), 4 para inteiro e 2 para smallint. |
SCALE |
smallint | Escala da coluna na fonte de dados.
NULL é devolvido para tipos de dados para os quais a escala não é aplicável. |
PSEUDO_COLUMN |
smallint | Indica se a coluna é uma pseudocoluna. O SQL Server retorna 1sempre :0 = SQL_PC_UNKNOWN1 = SQL_PC_NOT_PSEUDO2 = SQL_PC_PSEUDO |
Observações
sp_special_columns é equivalente a SQLSpecialColumns em ODBC. Os resultados devolvidos estão ordenados por SCOPE.
Permissions
Requer SELECT permissão no esquema.
Examples
O exemplo seguinte devolve informação sobre a coluna que identifica de forma única as linhas da HumanResources.Department tabela.
USE AdventureWorks2022;
GO
EXECUTE sp_special_columns
@table_name = 'Department',
@table_owner = 'HumanResources';