2017-09-26 3 views
0

Nicht sicher, wie dies zu erklären, aber hier geht es.Aktualisieren mehrerer Zeilen mit Positionscursor

Ich habe eine Datenbank, die 5 Positionen in einer Standorttabelle enthält. Sagen wir One, two, three, four and five

Was ich tun muss, ist eine andere Tabelle zu aktualisieren TemplateNames Hinzufügen der locationID nach der Beschreibung (10 Zeilen für jeden Standort), jedoch die Standorttabelle und die Tabelle TeamplateNames sind in keiner Weise verknüpft.

Die Art, wie ich das bisher versucht habe, ist wie folgt;

CREATE TABLE #Temp 
(
    LocationID int 
) 

SELECT LocationID 
INTO #Temp 
FROM From Location 

DECLARE @ID int; 

DECLARE Cursor cursor 

FOR 
SELECT DISTINCT LocationID 
FROM #Temp 

OPEN Cursor 

FETCH NEXT FROM Cursor INTO @Id 

WHILE @@FETCH_STATUS = 0 
BEGIN 

--Insert data? 
    FETCH NEXT FROM Cursor INTO @Id 
END 

close Cursors; 
deallocate Cursor; 
DROP TABLE #Temp; 

Die aktuelle Beschreibung ist als

IAmATemplate 

folgt Aber der aus Put- würde

IAmATemplate - one (Die LocationID nach dem Namen)

+0

kann nicht wirklich verstehen, was Sie versuchen zu tun. vielleicht würde eine Beispieleingabe/-ausgabe helfen. vielleicht an 2 Stellen editieren und für 3 Zeilen anstatt 10 zu vereinfachen. – Tanner

Antwort

1

Wenn ich correcctly Sie don verstehen sein müssen Sie müssen die Tabellen verknüpfen. Es wäre viel einfacher, wenn Sie nur die Tabellen multiplizieren und dann aktualisieren. Ich meine;

;WITH T AS(
Select Description,LocationID FROM TemplateNames,Locations 
) 
Update T SET Description = Description + LocationID 
Verwandte Themen