Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

EINFÜGEN IN VS AUSWÄHLEN IN

  1. Sie machen verschiedene Dinge. Verwenden Sie INSERT wenn die Tabelle existiert. Verwenden Sie SELECT INTO wenn nicht.

  2. Ja. INSERT ohne Tabellenhinweise wird normalerweise protokolliert. SELECT INTO wird minimal protokolliert, vorausgesetzt, die richtigen Trace-Flags sind gesetzt.

  3. Meiner Erfahrung nach SELECT INTO wird am häufigsten mit Zwischendatensätzen verwendet, wie #temp Tabellen, oder um eine ganze Tabelle wie für ein Backup herauszukopieren. INSERT INTO wird verwendet, wenn Sie in eine vorhandene Tabelle mit bekannter Struktur einfügen.

BEARBEITEN

Um Ihre Bearbeitung zu adressieren, tun sie verschiedene Dinge. Wenn Sie eine Tabelle erstellen und die Struktur definieren möchten, verwenden Sie CREATE TABLE und INSERT . Beispiel für ein Problem, das erstellt werden kann:Sie haben eine kleine Tabelle mit einem varchar-Feld. Die größte Zeichenfolge in Ihrer Tabelle ist jetzt 12 Bytes groß. Ihr realer Datensatz benötigt bis zu 200 Bytes. Wenn Sie SELECT INTO ausführen aus Ihrer kleinen Tabelle, um eine neue zu erstellen, das spätere INSERT schlägt mit einem Abschneidefehler fehl, da Ihre Felder zu klein sind.