Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [sqlserver 2005] duplicare record

    ho fatto una query del genere:

    INSERT INTO tabella SELECT * FROM tabella WHERE NUMERO_FATTURA = @NUMEROFATTURA

    dove il campo id della "tabella" è un campo identity
    ottengo "giustamente" questo errorre:

    È possibile specificare un valore esplicito per la colonna Identity nella tabella 'tabella' solo quando si utilizza un elenco di colonne e IDENTITY_INSERT ha valore ON.

    esiste un modo per evitare di specificare tutti i campi che voglio inserire nella query(cioe tutti tranne l'id)? esiste qualche comando che nonostante abbia specificato "*" nella query escluda il campo id dalla insert?
    o cmq c'e' un'altro modo per duplicare un record(con un nuovo id) in una tabella senza fare una query come ho fatto io?

  2. #2
    Ciao,
    Te la butto li...

    a. Aggiungi un nuovo campo identity autoincremantale nella tabella di destinazione
    b. Ti "porti dietro" lo stesso id impostando SET IDENTITY_INSERT TABELLA ON prima della insert e SET SET IDENTITY_INSERT TABELLA OFF dopo la insert.
    c. Importi i singoli campi senza usare "*"
    Massimo Missaglia
    --------------------------------
    http://www.massimomissaglia.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.