mindhunter
Benutzer
- Beiträge
- 22
Hallo,
in einer Microsoft SQL Datenbank gibt es eine Tabelle, welche mit Parametern geändert werden soll. Als Beispiel habe ich ein Script, das diese Tabelle anlegt. Mit einer SELECT-Anweisung hole ich bestimmte Daten. Nun möchte ich diesen SELECT Zeile für Zeile durchlaufen und Werte neu setzten und mir die geänderten Daten in einem SELECT wieder anzeigen lassen, bzw. ausgeben. Z.B. wenn site_id = 3 dann schreibe in Test ‘blabla‘, site_id = 5 dann ‘bliblablup‘ in Test. Die Anzahl der Zeilen erfasse ich mit SELECT COUNT(*) FROM DUAL oder ist die FETCH-Anweisung dafür besser geeignet?
Vielen Dank für eure Hilfe
Stefan
---
in einer Microsoft SQL Datenbank gibt es eine Tabelle, welche mit Parametern geändert werden soll. Als Beispiel habe ich ein Script, das diese Tabelle anlegt. Mit einer SELECT-Anweisung hole ich bestimmte Daten. Nun möchte ich diesen SELECT Zeile für Zeile durchlaufen und Werte neu setzten und mir die geänderten Daten in einem SELECT wieder anzeigen lassen, bzw. ausgeben. Z.B. wenn site_id = 3 dann schreibe in Test ‘blabla‘, site_id = 5 dann ‘bliblablup‘ in Test. Die Anzahl der Zeilen erfasse ich mit SELECT COUNT(*) FROM DUAL oder ist die FETCH-Anweisung dafür besser geeignet?
Vielen Dank für eure Hilfe
Stefan
---
Code:
DROP TABLE DUAL
CREATE TABLE DUAL
(
site_id [int] NULL,
Name [nchar](50) NULL,
Abk [nchar](10) NULL,
Cur [nchar](10) NULL,
Class [nchar](10) NULL,
Product [nchar](10) NULL,
Project [nchar](10) NULL,
Color_ID [nchar](10) NULL,
Test [nchar](10) NULL
)
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (0,'0','NULL','EUR','NULL','NULL','NULL','NULL','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (1,'BU SC','BU SC','EUR','BU','NULL','NULL','0','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (2,'CI','NULL','EUR','BS','NULL','NULL','6','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (3,'PA','NULL','EUR','BS','NULL','NULL','78','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (4,'PI','NULL','EUR','BS','NULL','NULL','30','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (5,'PP','NULL','EUR','BS','NULL','NULL','42','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (6,'CI (HQ)','NULL','EUR','Site','NULL','NULL','7','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (7,'MF-K (PI)','NULL','EUR','Site','NULL','NULL','31','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (8,'Concord','NULL','EUR','Site','NULL','NULL','5','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (10,'Houston','NULL','EUR','Site','NULL','NULL','79','NULL')
INSERT INTO DUAL (site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test)
VALUES (11,'Singapore','NULL','EUR','Site','NULL','NULL','77','NULL')
SELECT site_id, Name, Abk, Cur, Class, Product, Project, Color_ID, Test FROM DUAL WHERE Class = 'BS'
DECLARE @numRow int
DECLARE row_cursor CURSOR FOR
SELECT site_id, Color_ID, Test FROM DUAL WHERE Class ='BS';
SET @numRow = (SELECT COUNT(*) FROM DUAL)
OPEN row_cursor;
FETCH NEXT FROM row_cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
-- site_id = 3 dann schreibe in Test ‘bla_bla‘, site_id = 5 dann ‘bli_bla_blup‘ in Test.
-- SELECT site_id, Color_ID, Test FROM DUAL...
FETCH NEXT FROM row_cursor
END
CLOSE row_cursor;
DEALLOCATE row_cursor;