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

INSERISCI IN vs SELEZIONA IN

  1. Fanno cose diverse. Usa INSERT quando la tabella esiste. Usa SELECT INTO quando non lo fa.

  2. Sì. INSERT senza suggerimenti per la tabella viene normalmente registrato. SELECT INTO viene registrato in minima parte presupponendo che siano impostati i flag di traccia appropriati.

  3. Nella mia esperienza SELECT INTO è più comunemente usato con set di dati intermedi, come #temp tabelle o per copiare un'intera tabella come per un backup. INSERT INTO viene utilizzato quando si inserisce in una tabella esistente con una struttura nota.

MODIFICA

Per indirizzare la tua modifica, fanno cose diverse. Se stai creando una tabella e vuoi definire la struttura usa CREATE TABLE e INSERT . Esempio di un problema che può essere creato:hai una piccola tabella con un campo varchar. La stringa più grande nella tua tabella ora è di 12 byte. Il tuo set di dati reale avrà bisogno di un massimo di 200 byte. Se fai SELECT INTO dal tuo tavolino per crearne uno nuovo, il successivo INSERT fallirà con un errore di troncamento perché i tuoi campi sono troppo piccoli.