LesezeichenAbonnierenRSS-Feed abonnieren
Flo1986
Calcite | Level 5

Hallo, 

ich habe ein kleines Problem.

Ich lösche den Inhalt einer Tabelle (xxx.test)

und schreibe danach ein neuen Inhalt (aus der "WORK.QUERY_FOR_XXX) rein.

 

Mein Problem ist nur, dass die Tabelle xxx.test den Inhalt der ID ignoriert und selber fortlaufende IDs erstellt.

Heißt ich schreibe einen Datensatz mit 300 Zeilen in die Tabelle und ich habe die ID 1-300

Dann lösche ich den Inhalt und schreibe erneut einen Datensatz mit 300 Zeilen in die Datenbank, nun fängt die erste ID bei 601 an, ich möchte aber das die ID immer wieder zurückgesetzt wird, beim reinschreiben in die Tabelle, und bei 1 anfängt.

 

Ist das möglich?

Ich hoffe ich hab mich verständlich ausgedrückt.

 

LIBNAME xxx ODBC  DATAsrc=xxx  SCHEMA=xxx IGNORE_READ_ONLY_COLUMNS=YES; 
PROC SQL;
DELETE FROM xxx.test;
QUIT;

PROC SQL;

INSERT INTO xxx.test

   SELECT id, 
          spalte2, 
          spalte3, 
          spalte4, 
      FROM WORK.QUERY_FOR_XXX t1;
QUIT;
4 ANTWORTEN 4
Flo1986
Calcite | Level 5

Danke für die schnelle Antwort,

 

Diese Fehlermeldung hält mich davon ab:

 

ERROR: The ODBC table xxx.test has been opened for OUTPUT. This table already exists, or there is a name conflict with an
existing object. This table will not be replaced. This engine does not support the REPLACE option.

jh_ti_bw
Obsidian | Level 7

Hallo Flo1986,

 

versuchs mal mit :

PROC SQL;

INSERT INTO xxx.test

   SELECT monotonic() as id, 
          spalte2, 
          spalte3, 
          spalte4, 
      FROM WORK.QUERY_FOR_XXX t1;
QUIT;

Außerdem befindest Du dich anscheinend in einer anderen Datenbank. Eventuell ist ID in XXX.test als autoincrement definiert. Dann müsstest Du die Tabellendefinition ändern.

Den Fehler, dass ODBC die Replace option nicht unterstütztz bekommst Du weg, indem die Tabelle xxx.Test vorher explizit löscht.

Proc delete data = xxx.Test; run
Data xxx.test;
  set 
  ....
run;

Viele Grüße

 

Jan

Flo1986
Calcite | Level 5

Die ID war als autoincrement definiert. Hätte ich auch selber drauf kommen können Frustrierte Smiley.

 

Vielen Dank für die Hilfe.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Diskussionsstatistiken
  • 4 Antworten
  • 1538 Aufrufe
  • 1 Kudo
  • 3 in Unterhaltung