J'ai hérité d'une base de données Sybase dans laquelle l'option 'index auto_identity unique' est activée. Dans le cadre d'un processus de mise à niveau, je dois ajouter quelques colonnes supplémentaires aux tables dans cette base de données à savoirAjout de colonnes à une table sybase avec une option d'index auto_identity unique
alter table mytable add <newcol> float default -1 not null
Lorsque je tente de faire, je reçois l'erreur suivante:
Column names in each table must be unique, column name SYB_IDENTITY_COL in table #syb__altab....... is specifed more than once
Est-il possible ajouter des colonnes à une table avec cette propriété activée?
Mise à jour 1:
J'ai créé le test suivant qui reproduit le problème:
use master
sp_dboption 'esmdb', 'unique auto_identity indexoption',true
use esmdb
create table test_unique_ids (test_col char)
alter table test_unique_ids add new_col float default -1 not null
La commande alter table produit ici l'erreur. (Ont essayé sur ASE 15/Solaris et 15,5/Windows)
Mise à jour 2:
Ce bogue dans Sybase dbisql interface, que les outils clients Sybase utiliser Central et Interactive SQL accéder à la base de données et il semble affecter uniquement les tables avec l'option 'unique auto_identity index' activée. Pour contourner le problème, utilisez un client SQL différent (via JDBC par exemple) pour vous connecter à la base de données ou utilisez isql sur la ligne de commande.
J'ai mis à jour l'original avec un exemple de code qui génère l'erreur. – tja
@tja: Répondu – PerformanceDBA
Est un bogue, voir mise à jour 2. – tja