2016-06-18 6 views
0

ich versuche, um alle Daten aus fælge Spalte in der Testtabelle in die fælgen Spalte in der Tabelle Test mit diesemSQL Server: Kopieren Sie die gesamte Spalte zu einer anderen Spalte Fehler

Abfrage zu bewegen
INSERT INTO [dbo].[test2] ([Fælgen]) 
    SELECT Fælge 
    FROM [dbo].[test]; 

aber ich bin immer einen Fehler mit ihm zu sagen, dass es kann nicht die null in Spalte ET einsetzen, die nicht, dass Spalte ich meine Daten an

Msg 515, Ebene 16, Status 2, Zeile 2
bin versucht zu Kann nicht einfügen legen sie die Wert NULL in Spalte 'ET', Tabelle 'OminiDa ta.dbo.test2 '; Spalte erlaubt keine Nullen. INSERT schlägt fehl.

+0

Sie müssen Daten für alle Nicht-Null-Spalten (die keinen Standardwert haben) in der Tabelle –

+0

angeben. Wollen Sie wirklich ** neue Zeilen einfügen, wenn nur eine Spalte in die Tabelle gefüllt ist (die funktioniert offensichtlich nicht) ?? Oder hast du lieber *** UPDATE *** bestehende Zeilen mit einem neuen Wert für diese eine Spalte ?? Auch, Ratschlag: Sie sollten * NICHT * Sonderzeichen wie 'æ' in Ihren Tabellen-/Spaltennamen verwenden - bleiben Sie für diese Namen auf 7-Bit-ASCII. Sonst werden Sie früher oder später Probleme bekommen ..... –

Antwort

1

Während Sie Daten in Tabelle einfügen möchten, müssen Sie sicherstellen, dass alle Einschränkungen übergeben und nichts gegen sie verstoßen.

Sie müssen sicherstellen, dass alle Nicht-Null-Spalten beim Einfügen des neuen Datensatzes einen Wert haben. Tatsächlich können Sie keinen Wert in einzelne Spalten in einer Tabelle einfügen, ohne die Einschränkungen zu berücksichtigen und Werte für nicht nullfähige Spalten anzugeben.

Schließlich diesen Fehler zu überwinden, haben Sie zwei Wahl:

  1. Aktualisieren Sie die Zielspalte (Wenn es eine Eins-eins oder eins-many Beziehung zwischen Test- und Test2 ist, müssen diese Aktualisierung auf Basis von Join, andere weise ein einfaches Update wird die Lösung)

  2. Geben Sie nicht-null-Wert für ET

    INSERT INTO [dbo].[test2] ([Fælgen], [ET]) 
        SELECT Fælge , '' as ET 
        FROM [dbo].[test]; 
    
-1

Sie können keine Werte in einzelne DB-Spalten einfügen. Sie fügen immer ganze Zeilen ein. Ihre Aussage bedeutet also nicht wirklich fügen Sie einige Werte in diese Spalte ein. Was es wirklich bedeutet, ist fügen Sie einige Werte in diese Spalte und Null/Standardwerte in alle anderen Spalten ein. Wenn eine dieser anderen Spalten keine Nullen zulässt und keine Standardwerte ungleich null aufweist, schlägt das Einfügen fehl.

0

Drücken Sie die rechte Maustaste auf dem Tisch, wählen Sie Skript Tabelle als ... -> INSERT. Es wird eine Skriptvorlage zum Einfügen geben. Alle in diesem Skript erwähnten Spalten sollten Werte haben, die durch ihre Datentypen bestimmt sind.

0

Ich arbeitete an demselben Fehler. habe diesen Link gefunden SQL Server: copy data from one column to another column?

Mit Merge konnte ich Daten von einer Spalte in eine andere in zwei verschiedenen Tabellen kopieren. Stellen Sie sicher, dass der Datentyp für beide Spalten kopiert werden muss und die Anzahl der Zeilen für beide Tabellen.

Verwandte Themen