evento
Obtenha a certificação no Microsoft Fabric — gratuitamente!
19/11, 23 - 10/12, 23
Por um tempo limitado, a equipe da Comunidade do Microsoft Fabric está oferecendo vouchers de exame DP-600 gratuitos.
Prepare-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Retorna o valor da última identidade gerado para uma tabela ou exibição especificada. O valor da última identidade gerado pode ser para qualquer sessão e para qualquer escopo.
Convenções de sintaxe de Transact-SQL
IDENT_CURRENT( 'table_or_view' )
table_or_view
É o nome da tabela cujo valor de identidade é retornado. table_name é varchar, sem nenhum padrão.
numeric(@@MAXPRECISION,0))
Retornará NULL em caso de erro ou se um chamador não tiver permissão para exibir o objeto.
No SQL Server, um usuário só pode exibir os metadados de itens protegíveis de sua propriedade ou para os quais ele tenha permissão concedida. Isso significa que as funções internas emissoras de metadados, como IDENT_CURRENT, podem retornar NULL se o usuário não tiver permissão no objeto. Para obter mais informações, consulte Metadata Visibility Configuration.
IDENT_CURRENT é semelhante às funções de identidade SCOPE_IDENTITY e @@IDENTITY do SQL Server 2000 (8.x). As três funções retornam valores de identidade gerados por último. Entretanto, o escopo e a sessão nas quais o último está definido em cada uma dessas funções difere:
Quando o valor IDENT_CURRENT é NULL (porque a tabela nunca teve linhas ou foi truncada), a função IDENT_CURRENT retornar o valor semente.
Instruções e transações com falha podem alterar a identidade atual de uma tabela e criar lacunas nos valores da coluna de identidade. O valor de identidade nunca é revertido, mesmo que a transação que tentou inserir o valor na tabela não seja confirmada. Por exemplo, se uma instrução INSERT falhar por causa de uma violação IGNORE_DUP_KEY, o valor de identidade atual para a tabela ainda será incrementado.
Ao usar IDENT_CURRENT em uma exibição que contém junções, retorna NULL. Isso ocorre independentemente de se apenas uma ou mais tabelas unidas possuem uma coluna de identidade.
Importante
Tenha cautela ao usar IDENT_CURRENT para prever o próximo valor de identidade gerado. O valor gerado real pode ser diferente de IDENT_CURRENT mais IDENT_INCR devido a inserções executadas por outras sessões.
O exemplo a seguir retorna o último valor de identidade gerado para a tabela Person.Address
no banco de dados AdventureWorks2022
.
USE AdventureWorks2022;
GO
SELECT IDENT_CURRENT ('Person.Address') AS Current_Identity;
GO
O exemplo a seguir mostra os valores de identidade diferentes que são retornados por IDENT_CURRENT
, @@IDENTITY
e SCOPE_IDENTITY
.
USE AdventureWorks2022;
GO
IF OBJECT_ID(N't6', N'U') IS NOT NULL
DROP TABLE t6;
GO
IF OBJECT_ID(N't7', N'U') IS NOT NULL
DROP TABLE t7;
GO
CREATE TABLE t6(id INT IDENTITY);
CREATE TABLE t7(id INT IDENTITY(100,1));
GO
CREATE TRIGGER t6ins ON t6 FOR INSERT
AS
BEGIN
INSERT t7 DEFAULT VALUES
END;
GO
--End of trigger definition
SELECT id FROM t6;
--IDs empty.
SELECT id FROM t7;
--ID is empty.
--Do the following in Session 1
INSERT t6 DEFAULT VALUES;
SELECT @@IDENTITY;
/*Returns the value 100. This was inserted by the trigger.*/
SELECT SCOPE_IDENTITY();
/* Returns the value 1. This was inserted by the
INSERT statement two statements before this query.*/
SELECT IDENT_CURRENT('t7');
/* Returns value inserted into t7, that is in the trigger.*/
SELECT IDENT_CURRENT('t6');
/* Returns value inserted into t6. This was the INSERT statement four statements before this query.*/
-- Do the following in Session 2.
SELECT @@IDENTITY;
/* Returns NULL because there has been no INSERT action
up to this point in this session.*/
SELECT SCOPE_IDENTITY();
/* Returns NULL because there has been no INSERT action
up to this point in this scope in this session.*/
SELECT IDENT_CURRENT('t7');
/* Returns the last value inserted into t7.*/
@@IDENTITY (Transact-SQL)
SCOPE_IDENTITY (Transact-SQL)
IDENT_INCR (Transact-SQL)
IDENT_SEED (Transact-SQL)
Expressões (Transact-SQL)
Funções de sistema (Transact-SQL)
evento
Obtenha a certificação no Microsoft Fabric — gratuitamente!
19/11, 23 - 10/12, 23
Por um tempo limitado, a equipe da Comunidade do Microsoft Fabric está oferecendo vouchers de exame DP-600 gratuitos.
Prepare-se agora