none
INSERÇÃO DE DADOS EM CAMPO IDENTITY AUTOINCREMENTO RRS feed

  • Pergunta

  • Boa tarde,

    é possível inserir em uma tabela com o campo ja de autoincremento, eu inserir um codigo de minha preferencia que ainda

    nao exista na tabela...

    - Se sim favor postar o codigo sql pra fazer isto na hora da inserção.

    Obrigado


    luiz

    terça-feira, 29 de julho de 2014 20:18

Respostas

  • Boa tarde Luiz, é possível sim, veja nesse link!!!

    http://ricardospinoza.wordpress.com/2012/10/17/sql-server-desabilitar-e-habilitar-campo-identity/

    Abraço!!!

    Diego de O. Neves |Analista Desenvolvedor .NET
    Microsoft MCP | ITIL® V3 Foundation 

    • Marcado como Resposta luiz_carlos quarta-feira, 30 de julho de 2014 12:17
    terça-feira, 29 de julho de 2014 20:40

Todas as Respostas

  • Boa tarde Luiz, é possível sim, veja nesse link!!!

    http://ricardospinoza.wordpress.com/2012/10/17/sql-server-desabilitar-e-habilitar-campo-identity/

    Abraço!!!

    Diego de O. Neves |Analista Desenvolvedor .NET
    Microsoft MCP | ITIL® V3 Foundation 

    • Marcado como Resposta luiz_carlos quarta-feira, 30 de julho de 2014 12:17
    terça-feira, 29 de julho de 2014 20:40
  • Diego,

    Você vai precisar alterar o IDENTITY_INSERT para sua tabela, assim você poderá inserir códigos fora da ordem, como você está precisando.

    Veja um exemplo abaixo:

    CREATE TABLE TB_TESTE (
     ID_CLIENTE  TINYINT IDENTITY (1, 1) NOT NULL,
     NM_CLIENTE  VARCHAR(20 ) NOT NULL
    )
    
    INSERT INTO TB_TESTE VALUES ('CLIENTE 1' );
    INSERT INTO TB_TESTE VALUES ('CLIENTE 2' );
    INSERT INTO TB_TESTE VALUES ('CLIENTE 3' );
    
    SELECT * FROM TB_TESTE
    
    DELETE FROM TB_TESTE WHERE ID_CLIENTE = 2
    
    SELECT * FROM TB_TESTE
    
    SET IDENTITY_INSERT TB_TESTE ON
    INSERT INTO TB_TESTE (ID_CLIENTE, NM_CLIENTE) VALUES ( 2, 'CLIENTE 2 B');
    SET IDENTITY_INSERT TB_TESTE OFF
    
    SELECT * FROM TB_TESTE

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 30 de julho de 2014 12:15
    Moderador
  • Diego,

    Veja se estes outros exemplos podem ajudar:

    -- Utilizando - Função - Identity no Select Into --
    select identity(int, 1,1) As Seq, name into #teste from sys.sysdatabases

    -- Criando um Seqüêncial sem o Identity --
    Create Table #Sequencial
     (Sequencial Int Identity(1,1),
       Campo1 Int,
       Campo2 Int,
       Campo3 Int)
    
    Insert Into #Sequencial Values(1,2,3)
    Insert Into #Sequencial Values(4,5,6)
    Insert Into #Sequencial Values(7,8,9)
    Insert Into #Sequencial Values(10,11,12)
    
    
    Select * from #Sequencial
    
    SELECT
     (SELECT COUNT(Sequencial) FROM #Sequencial AS TInt Where TInt.Sequencial >= TOut.Sequencial) As SEQ,
     Campo1, Campo2, Campo3
    FROM
     #Sequencial AS TOut
    ORDER BY SEQ ASC

    -- Exemplo - Reorganizando - Identity através de variável --

    Declare @Identity Int ---Refazendo numeração Controle de Entrada - Matéria Prima --- Set @Identity=(Select Ident_Current('CTEntrada_PQC')) DBCC CheckIdent('CTEntrada_PQC',Reseed,@Identity)

    -- Exemplo - Default Values + Set Identity_Insert --
    
    Create Table InserirValores
     (Codigo Int Identity(1,1))
    
    Insert Into InserirValores Default Values
    Go 20
    
    Select * from InserirValores
    
    Delete From InserirValores
    Where Codigo In (2,4,6,8,10)
    
    Select * from InserirValores
    
    Set Identity_Insert InserirValores ON
    Insert Into InserirValores (Codigo) Values (2)
    
    Set Identity_Insert InserirValores OFF
    Insert Into InserirValores Default Values



    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    sexta-feira, 1 de agosto de 2014 14:31