T-SQL-Update-Tabelle-Spalten mit Hilfe der Funktion
Ich habe die folgende Tabelle:
RecordID
Name
Col1
Col2
....
ColN
Den RecordID
ist BIGINT PRIMARY KEY CLUSTERED IDENTITY(1,1)
und RecordID
und Name
initialisiert werden. Die anderen Spalten werden Null-Werte.
Ich habe eine Funktion, die Informationen liefert über die anderen Spalten von Name
.
Initialisiert meinem Tisch, die ich verwenden den folgenden Algorithmus:
- Eine SCHLEIFE erstellen
- Erhalten Sie eine Zeile, wählen Sie Ihre
Name
Wert - Führen Sie die Funktion mit dem gewählten Namen, und speichern Sie Ihr Ergebnis
in temp-Variablen - Legen Sie die temp-Variablen in der Tabelle
- Zum nächsten Datensatz wechseln
Gibt es eine Möglichkeit, dies zu tun, ohne Schleife?
InformationsquelleAutor gotqn | 2012-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cross apply-war im Grunde für diese gebaut
Verwenden von APPLY
die Verwendung von cross apply in einer update-Anweisung
InformationsquelleAutor paparazzo
Können Sie einfach das folgende sagen, wenn Sie bereits Datensätze in der Tabelle.
Beim einfügen neuer Datensätze, vorausgesetzt, Datensatz-id wird automatisch generiert, man kann sagen,
wo @Name enthält den Wert für die Name-Spalte.
Wenn Sie nur eine Methode aufgerufen werden, füllen eine Spalte, dann wird diese Funktion aufgerufen, so viele Zeilen, wie in der DB. Wenn Sie wollen, beschränken Sie die Zeilen, für die dieser ausführen soll, können Sie natürlich geben Sie eine WHERE-Klausel zu qualifizieren, diese Gruppe von Zeilen.
Ja, ich weiß das. Ich wollte zum ausführen der Funktion für jede Zeile. Mein Punkt ist,dass die Funktionen gibt 10 Spalten, nicht ein.
Ich wusste nicht, dass man Funktionsaufruf gibt alle Spalten einer bestimmten Zeile. Wie auch immer, ich sehen, dass Sie bekamen, was Sie wollten, von der anderen Antwort.
Dies ist die einfachste Antwort. Die Aktualisierung von Spalten w die Ausgabe einer Funktion ist eine sehr einfache, sehr nützliche Methodik.
InformationsquelleAutor Vikdor