2009-06-01 11 views
2

Ich habe eine SQL Anywhere 9-Datenbank, und ich möchte den Autoinkrement-Wert für eine meiner Spalten auf eine bestimmte Zahl zurücksetzen.SQL Anywhere-Autoinkrement zurückgesetzt

Ich denke, ich brauche die SQL-Anywhere-Äquivalent:

ALTER TABLE foo AUTO_INCREMENT =100

Antwort

6

Nur so ist die Antwort eigentlich hier ist, nicht nur in Verbindung mit:

Verwenden sa_reset_identity Systemprozedur:

sa_reset_identity (
    [ table_name 
    [, owner 
    [, new_identity_value ] ] ] 
) 
+1

Stellen Sie sicher, dass new_identity_value auf n-1 gesetzt wird, wenn der nächste Wert n sein soll Setzen Sie 0, um den nächsten Wert von 1 zu erhalten. –

1

Eine Google-Suche this auftauchten. Ich habe SQL Anywhere nie benutzt, daher fürchte ich, dass ich nicht mehr helfen kann.

+0

Danke, gerade nach oben gezogen http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbrfen9/00000662 .htm und die spezifische Syntax für Systemfunktionen gefunden – Brohan

+0

Ich bin froh, dass sie nützlich ist. –

0

Die richtige Systemprozedur ist sa_reset_identity

CALL sa_reset_identity('table_name', 'user_name', new_start_value -1); 

Zum Beispiel, Sie haben eine Tabelle mit dem Namen CITIES, ein Benutzer DBA und Sie möchten, dass das Autoinkrement mit dem Wert beginnt. Ihr Code wäre:

CALL sa_reset_identity('cities', 'DBA', 0); 

Quelle: http://www.sqlines.com/sybase-asa/autoincrement_identity