SET IDENTITY INSERT (SQL Server Compact)

Permite que valores explícitos sejam inseridos na coluna de identidade de uma tabela.

Sintaxe

SET IDENTITY_INSERT table { ON | OFF } 

Argumentos

  • table
    O nome de uma tabela com uma coluna de identidade.

Comentários

A qualquer momento, apenas uma tabela em uma sessão pode ter a propriedade IDENTITY_INSERT definida como ON. Se uma tabela já tiver essa propriedade definida como ON e uma instrução SET IDENTITY_INSERT ON for emitida para outra tabela, o SQL Server Compact retornará uma mensagem de erro. A mensagem informa que SET IDENTITY_INSERT já está definido como ON e relata o nome da tabela. Não é permitido usar o comando SET IDENTITY_INSERT sem um nome de tabela. Se o comando Transact-SQL for emitido sem o nome da tabela, um erro é acionado.

Quando IDENTITY_INSERT está ON, o SQL Server Compact não atualiza automaticamente metadados relacionados a IDENTITY como AUTOINC_NEXT quando o valor IDENTITY recém-fornecido é superior ou igual a AUTOINC_NEXT. Esse comportamento é diferente do SQL Server. Apesar de não ser tão eficiente quanto o SET IDENTITY_INSERT, o comportamento de incremento automático do SQL Server pode ser imitado usando a técnica a seguir.

ALTER TABLE < TableName > ALTER COLUMN < ColumnName > < Datatype > IDENTITY(< NewSeed >, < NewStep >)

Dica

Se < NewSeed > estiver fora do intervalo alocado, a Replicação de Mesclagem poderá se romper.