Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo di OUTPUT dopo INSERT per ottenere il valore della colonna Identity in una variabile (valore non di tabella).

Ricorda che il valore della clausola di output è che può restituire più di un record e più di un campo. Quindi puoi produrre sia la chiave naturale che l'identità per un insieme di dati in modo da poter utilizzare anche la teoria degli insiemi per inserire più record nelle tabelle figlie. L'output è molto potente e pagherà per abituarsi a usarlo.

Attualmente è presente un bug in scope_identity() (vedi link:http://connect.microsoft.com/SQLServer/feedback/details/328811/scope-identity-sometimes-returns-incorrect-value ) che Microsoft non intende correggere. Questo dovrebbe darti un'idea se dovresti usare l'output per il nuovo sviluppo anche se è un po' più complicato per i singoli record.