因為連接sybase的環境只有文字介面,所以使用henplus來操作,不過這次想要新增個欄位,執行了底下的sql後
henplus> alter table test add specs char(2) null;
卻一直出現底下的訊息:
FAILURE: The 'ALTER TABLE' command is not allowed within a multi-statement transaction in the 'db' database.
查了半天,看不出所以然來,似乎跟transaction有關,想到henplus預設auto-commit是off,於是執行了底下的指令
henplus>set-session-property auto-commit on;
用底下的指令查一下設定,只要看到on就成功了
henplus>set-session-property
-----------------+----------------+-----------------------------------------------+
Name | Value | Description |
-----------------+----------------+-----------------------------------------------+
auto-commit | on | Switches auto commit |
isolation-level | read-committed | sets the transaction isolation level |
read-only | off | Switches on read only mode for optimizations. |
-----------------+----------------+-----------------------------------------------+
再執行
henplus> alter table test add specs char(2) null;
回覆,這樣就成功囉~
ok. (13 msec)
=====2015/6/2 新增======
若是要改變column name,使用rename column一直無法成功,只能使用sp_rename這個內建函式,使用方式如下
henplus> sp_rename 'test.specs', 'test.specs2';
回覆如下就成功了
affected 1 rows (119 msec)
=====2015/6/2 新增======
=====2015/6/9 新增======
使用
Henplus下複製整個Table資料到新的資料庫所提及的複製方式會有個問題,就是primary key無法跟著複製過去,所以要再加上primary key可以用底下的sql
henplus> alter table test add primary key (id);
=====2015/6/9 新增======
參考網址:
Adaptive Server Enterprise 15.7 > Reference Manual: Commands > Commands > alert table