Create table von SQL-Abfrage

Dies ist ein leidiges Thema und ich kann nicht herausfinden, wie es zu lösen. Ich bin Mit Microsoft SQL Server 2008.

Also ich habe zwei Tabellen und ich muss das update für beide. Sie teilen sich einen gemeinsamen Schlüssel, id sagen. Ich möchte update Table1 mit ein paar Sachen und dann aktualisieren Sie die Table2 Zeilen die waren bzw. modifiziert Table1.

Das Problem ist, dass ich nicht genau weiß, welche Zeilen geändert wurden, denn ich nehme Sie zufällig mit ORDER BY NEWID() so dass ich wahrscheinlich nicht verwenden eine JOIN auf Table2 in keiner Weise. Ich bin versucht zu retten, die notwendigen details, die geändert wurden, in meiner Abfrage für Table1 und übergeben Sie an Tabelle2

Dies ist, was ich versuche zu tun,

CREATE TABLE IDS (id int not null, secondid int)

SELECT [Table1].[id], [Table1].[secondid]
INTO IDS
FROM
(
UPDATE [Table1]
SET [secondid]=100
FROM [Table1] t
WHERE t.[id] IN 
    (SELECT TOP 100 PERCENT t.[id] FROM [Table1]
        WHERE (SOME_CONDITION)
        ORDER BY NEWID()
    ) 
)

UPDATE [Table2]
SET some_column=i.secondid
FROM [Table2] JOIN IDS i ON i.id = [Table2].[id]

Aber ich bekomme

Falsche syntax in der Nähe des Schlüsselwortes 'UPDATE'.

Die Frage ist also: wie kann ich das Problem lösen Sie die syntax-Fehler oder ist es ein besserer Weg, dies zu tun?

Hinweis: die Abfrage eingeschlossen zwischen den Klammern der ersten FROM gut funktioniert, die vor dieser neuen Anforderung, so bezweifle ich, dass es ein problem gibt. Oder vielleicht doch?

BEARBEITEN: die Änderung der zweiten UPDATE als skk schlug vor, noch führt zu den gleichen Fehler (auf genau die folgende Zeile enthält UPDATE):

UPDATE [Table2]
SET some_column=i.secondid
FROM [Task] JOIN IDS i on i.[id]=[Table2].[id]
WHERE i.id=some_value
  • Haben Sie versucht, mithilfe von Triggern. Ich weiß, es hat seine eigene Leistung bezogenen Themen, aber könnte es vereinfachen, die gesamte Aufgabe.
  • Warum würden Sie ändern von Zeilen nach dem Zufallsprinzip?
InformationsquelleAutor Kaisar | 2011-11-17
Schreibe einen Kommentar